是否有任何简单的http响应解析器实现? 我们的想法是将完整的响应作为一个大字符串放入,并能够通过界面检索状态码,正文等内容。
请求/响应不是直接通过TCP / IP发送的,因此除了核心rfc 2616解析实现之外,不需要任何其他内容。
答案 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();
}
我在使用前建议阅读文档。