【发布时间】:2014-10-24 14:27:49
【问题描述】:
我正在尝试在 java 中解析 byte[],它是 HTTP 响应的表示。有这个问题Is there any simple http response parser for Java?,这正是我的问题,但接受的答案对我没有帮助。如果我查看http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/io/HttpMessageParser.html,我不明白这对我有什么帮助。
【问题讨论】:
-
什么机制为您提供了这个字节数组?您使用什么方法与 HTTP 服务器进行实际通信?
-
数据来自 WARC 文件,通过网络爬虫收集。我知道有一个库可以解析整个 WARC 文件,但我将它与这个 Hadoop 映射器 github.com/ept/warc-hadoop 一起使用,它使用它自己的 WARCRecord 格式。围绕这个有多个路由,但我认为解析 HTTP 响应应该是可行的。
-
您链接的文档说“此库当前不执行任何记录内的数据解析,例如 HTTP 标头或 HTML 正文。您可以简单地将服务器的响应读取为数组字节。在未来的版本中可能会添加额外的解析功能。 -- 这是否意味着字节数组只能用于创建显示文本 HTTP 响应的字符串?
-
是的,完全正确。你会得到类似
HTTP/1.1 301 Moved Permanently Alternate-Protocol: 80:quic,p=0.01 Cache-Control: public, max-age=2592000 Content-Length: 218 Content-Type: text/html; charset=UTF-8 Date: Fri, 24 Oct 2014 14:43:20 GMT Expires: Sun, 23 Nov 2014 14:43:20 GMT Location: http://www.google.nl/ Server: gws X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> -
是的,就是这样。谢谢你的帮助。我会尝试这样做或找到其他路线。不是要对任何人采取这种态度,但真的吗? asset-3.soup.io/asset/2905/6018_3568_450.jpeg.
标签: java parsing http byte response