是否有任何簡單的http響應解析器實現? 這個想法是將完整的響應作爲一個大字符串放入,並能夠通過接口檢索諸如狀態碼,正文等內容。有什麼簡單的HTTP響應解析器的Java?
請求/響應不是直接通過TCP/IP發送的,所以除了核心rfc 2616解析實現外沒有其他任何需求。
是否有任何簡單的http響應解析器實現? 這個想法是將完整的響應作爲一個大字符串放入,並能夠通過接口檢索諸如狀態碼,正文等內容。有什麼簡單的HTTP響應解析器的Java?
請求/響應不是直接通過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();
}
我推薦在使用前閱讀文檔。
恕我直言,OP想要解析他在String中的原始HTTP響應(可能來自某個轉儲)。 – 2012-02-13 13:19:22
Thomasz是對的。我正在處理原始響應......沒有URI並且HttpGet不起作用。 – mibollma 2012-02-13 14:18:34
@mibollma,看到第二個建議使用'HttpMessageParser' – 2012-02-13 14:30:58