是否存在简单的HTTP响应解析器实现?
想法是将完整响应作为一个大字符串输入,然后通过接口检索状态码、正文等。
这些请求/响应并非直接通过TCP/IP发送,因此除了核心RFC 2616解析实现外,无需任何其他内容。
Apache HttpClient
,则会获得一个Java响应对象,您可以使用它来提取标头或消息正文。请考虑以下示例。HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(new HttpGet("http://www.foo.com/"));
Header[] headers = response.getAllHeaders();
InputStream responseBody = response.getEntity().getContent();
如果您只想解析响应,也许HttpMessageParser
会很有用:
抽象的消息解析器,旨在从任意数据源构建HTTP消息。
我推荐使用基于Apache HTTP API构建的http-request。
HttpRequest<String> httpRequest = HttpRequestBuilder.createGet(someUri, String.class)
.responseDeserializer(ResponseDeserializer.ignorableDeserializer())
.build();
public void send(){
ResponseHandler<String> responseHandler = httpRequest.execute();
String responseBody = responseHandler.get();
int statusCode = responseHandler.getStatusCode();
}
我强烈建议在使用之前阅读文档。
HttpMessageParser
。 - Johan Sjöberg