【发布时间】:2012-08-20 14:17:32
【问题描述】:
在 C 中,当在套接字上使用 recv() 时,有没有办法排除数据附带的 HTTP 标头信息?我正在尝试读取一些二进制数据,而我想要的只是实际的二进制信息,而不是 HTTP 标头信息。当前接收到的数据如下所示:
HTTP/1.1 200 OK
Content-Length: 3314
Content-Type: image/jpeg
Last-Modified: Tue, 20 Mar 2012 14:51:34 GMT
Accept-Ranges: bytes
ETag: "45da99f1a86cd1:6b9"
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Mon, 20 Aug 2012 14:10:08 GMT
Connection: close
╪ α
我只想读取文件的二进制部分。 (这显然不是所有的二进制文件,只显示了这么多,因为我将 recv 循环的输出打印为字符串,而第一个 NULL 字符在那个小二进制字符串之后)。
我只需要去掉标题部分,有没有简单的方法可以做到这一点?
【问题讨论】:
-
我不认为有,但我知道在 C++ 中有。可能有一些库可以在 C 中提供帮助。但是您不需要知道 Content-Length 属性以便为有效负载分配足够的空间吗?