如何使用http-parser查找包含C中图像的http响应的结尾?

时间:2018-10-13 11:05:43

标签: jpeg wolfssl

我正在编写一个https客户端,以使用Wolfssl和http-parser获取https原始数据。它适用于常规HTML页面,但不适用于MIME类型文件。

问题是http解析器无法确定HTTP响应流的结尾。根据对http解析器和http协议文档的阅读,我知道与流结束有关的三个信号是:响应正文和EOF之后的content-length和'\ r \ n'。但是,我发现许多包含jpeg图像的HTTP响应都不包含它们。例如,此URL的响应没有内容长度,没有'\ r \ n',也没有EOF。 https://raw.githubusercontent.com/wolfSSL/wolfssl-examples/master/SGX_Linux/README-images/expected-make-output.png

我想知道是否还有其他方法可以找到流的结尾,或者我的代码中是否存在一些错误?

1 个答案:

答案 0 :(得分:0)

我在代码中发现了一个错误。

从套接字读取一些数据后,我将recv_buf的strlen()用作接收数据的长度。从常规HTTP页面读取数据时可能是正确的,但在读取图像文件时将失败。

所以我想http-parser可以正确找到响应流的结尾。