我正在编写一个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
我想知道是否还有其他方法可以找到流的结尾,或者我的代码中是否存在一些错误?
答案 0 :(得分:0)
我在代码中发现了一个错误。
从套接字读取一些数据后,我将recv_buf的strlen()用作接收数据的长度。从常规HTTP页面读取数据时可能是正确的,但在读取图像文件时将失败。
所以我想http-parser可以正确找到响应流的结尾。