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

有没有简单的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 httpRequest = HttpRequestBuilder.createGet(someUri, String.class) .responseDeserializer(ResponseDeserializer.ignorableDeserializer()) .build(); public void send(){ ResponseHandler responseHandler = httpRequest.execute(); String responseBody = responseHandler.get(); int statusCode = responseHandler.getStatusCode(); } 

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