繁体   English   中英

解析java中的http响应字节

[英]parse http response bytes in java

我正在尝试解析java中的byte[] ,它是HTTP响应的表示。 有这个问题是否有任何简单的Java响应解析器? ,这正是我的问题,但接受的答案对我没有帮助。 如果我查看http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/io/HttpMessageParser.html ,我不明白这对我有什么帮助。

我希望这能让你开始

String s = "HTTP/1.1 200 OK\r\n" +
        "Content-Length: 100\r\n" +
        "Content-Type: text/plain\r\n" +
        "Server: some-server\r\n" +
        "\r\n";
SessionInputBufferImpl sessionInputBuffer = new SessionInputBufferImpl(new HttpTransportMetricsImpl(), 2048);
sessionInputBuffer.bind(new ByteArrayInputStream(s.getBytes(Consts.ASCII)));
DefaultHttpResponseParser responseParser = new DefaultHttpResponseParser(sessionInputBuffer);
HttpResponse response = responseParser.parse();
System.out.println(response);

此代码生成以下输出:

HTTP/1.1 200 OK [Content-Length: 100, Content-Type: text/plain, Server: some-server]

看看这个: https//github.com/ipinyol/proxy-base

这是一个简单的高度可配置的http代理。 类org.mars.proxybase.ProxyThread的方法readHeader在给定DataInputStream(按字节读取)的情况下解析http头,并返回Header类型的对象以及有关头的信息。

此外,您可能知道要么在标题中定义了内容长度,要么您有必须通过http响应中的块读取的分块数据。 同一类的readContent和readContentByChunk方法执行内容的读取。 您可以自己探索代码并进行相应修改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM