背景
tws从来未处理过视频流。这次主要研究一下怎么接收解析视频信息。
实验
我大概知道Content-Type是multipart/form-data格式,所以首先不做任何转换,将Content-Type和Post直接透传到人脸服务,服务响应正常。证明这两个字段是没有问题的
multipart/form-data
上面的实验没有问题,说明tws只是将原始的数据全部解析到post字段,我们取出来之后,需要按照multipart/form-data协议进行解析。
- 从Content-Type字段中解析boundary字段
- 从post字段中查找以
--boundary字段开始,\r\n\r\n结束的字符串,这个字符串就是每一段的描述信息 - 从描述信息中可以解析出字段名或者文件名
- 继续查找以
\r\n\r\n开始,\r\n--boundary结束的字符串,这个字符串就是字段的value或者文件的具体内容。这里要注意的是,查找时不要用\r\n作为结束标志查找,因为可能文件中刚好有这个字符,造成读取文件不完整。我就遇到了解析出来的视频信息播放有问题,最终发现是这个原因 - 按照上述流程循环解析,直到步骤2没有找到
- 进行后续业务处理