0

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

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

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

4

1 回答 1

0

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

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

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

于 2018-10-13T12:53:35.833 回答