2012-02-13 18 views
9

単純なHTTP応答パーサーの実装はありますか? アイデアは、完全な応答を1つの大きな文字列として入力し、インターフェイスを通じてstatuscode、bodyなどのようなものを取得できるようにすることです。Java用の単純なhttp応答パーサーはありますか?

要求/応答はTCP/IP経由で直接送信されないため、コアrfc 2616解析実装以外のものは必要ありません。

答えて

11

たとえば、Apache HttpClientを使用する場合は、ヘッダーまたはメッセージ本文を抽出するために使用できるJava応答オブジェクトを取得します。あなただけREPONSEを解析したい場合は、次のサンプル

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

IMHO OPは彼がStringで持っている生のHTTPレスポンスを解析したいと思うかもしれません。 –

+0

トーマスが正しいです。私は生の応答で作業しています... URIはありませんし、HttpGetは動作しません。 – mibollma

+0

@mibollma、 'HttpMessageParser'を使った2番目の提案を参照してください。 –

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(); 
} 

私は使用前に必ずお読みになることをお勧めします。

関連する問題