【发布时间】:2012-02-13 13:10:42
【问题描述】:
有没有简单的http响应解析器实现? 这个想法是将完整的响应作为一个大字符串放入,并能够通过接口检索状态码、正文等内容。
请求/响应不直接通过 TCP/IP 发送,因此除了核心 rfc 2616 解析实现之外不需要任何东西。
【问题讨论】:
有没有简单的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 消息的抽象消息解析器。
【讨论】:
HttpMessageParser查看第二个建议
我推荐 http-request 基于 apache http api。
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();
}
我强烈建议在使用前阅读文档。
【讨论】: