是否有适用于Java的简单http响应解析器?

时间:2012-02-13 13:10:43

标签: java http

是否有任何简单的http响应解析器实现? 我们的想法是将完整的响应作为一个大字符串放入,并能够通过界面检索状态码,正文等内容。

请求/响应不是直接通过TCP / IP发送的,因此除了核心rfc 2616解析实现之外,不需要任何其他内容。

2 个答案:

答案 0 :(得分:11)

如果您使用例如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消息。

答案 1 :(得分:0)

我建议在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();
}

我在使用前建议阅读文档。