http multipart/form-data

背景

tws从来未处理过视频流。这次主要研究一下怎么接收解析视频信息。

实验

我大概知道Content-Type是multipart/form-data格式,所以首先不做任何转换,将Content-Type和Post直接透传到人脸服务,服务响应正常。证明这两个字段是没有问题的

multipart/form-data

上面的实验没有问题,说明tws只是将原始的数据全部解析到post字段,我们取出来之后,需要按照multipart/form-data协议进行解析。

  1. 从Content-Type字段中解析boundary字段
  2. 从post字段中查找以--boundary字段开始,\r\n\r\n结束的字符串,这个字符串就是每一段的描述信息
  3. 从描述信息中可以解析出字段名或者文件名
  4. 继续查找以\r\n\r\n开始,\r\n--boundary结束的字符串,这个字符串就是字段的value或者文件的具体内容。这里要注意的是,查找时不要用\r\n作为结束标志查找,因为可能文件中刚好有这个字符,造成读取文件不完整。我就遇到了解析出来的视频信息播放有问题,最终发现是这个原因
  5. 按照上述流程循环解析,直到步骤2没有找到
  6. 进行后续业务处理