2012-02-13 12 views
9

क्या कोई साधारण http प्रतिक्रिया पार्सर कार्यान्वयन है? विचार एक बड़ी स्ट्रिंग के रूप में पूर्ण प्रतिक्रिया में डालना है और इंटरफ़ेस के माध्यम से स्टेटसोड, बॉडी इत्यादि जैसी चीजें पुनर्प्राप्त करने में सक्षम होना है।क्या जावा के लिए कोई साधारण http प्रतिक्रिया पार्सर है?

अनुरोध/प्रतिक्रिया सीधे टीसीपी/आईपी पर नहीं भेजी जाती है, इसलिए कोर आरएफसी 2616 पार्सिंग कार्यान्वयन के अलावा कुछ भी नहीं है।

उत्तर

11

आप उदाहरण Apache HttpClient आप एक जावा प्रतिक्रिया ऑब्जेक्ट जो आप हेडर या संदेश के मुख्य भाग को निकालने के लिए उपयोग कर सकते हैं मिल जाएगा के लिए उपयोग करते हैं। निम्न नमूना पर विचार करें

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

आईएमएचओ ओपी कच्चे HTTP प्रतिक्रिया को पार्स करना चाहता है जो उसके पास स्ट्रिंग में है (शायद कुछ डंप से)। –

+0

थॉमस सही है। मैं कच्चे प्रतिक्रियाओं के साथ काम कर रहा हूं ... कोई यूआरआई नहीं है और एचटीपीजीट काम नहीं करेगा। – mibollma

+0

@ मिबोल्मा, 'HttpMessageParser' –

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

मैं उपयोग से पहले पढ़ने के लिए प्रलेखन की अत्यधिक सिफारिश करता हूं।

संबंधित मुद्दे