2012-06-06 16 views
36

अपाचे HttpClient 4.1.3 का उपयोग करना और एक HttpGet से स्थिति कोड प्राप्त करने की कोशिश: body सेHttpClient प्राप्त स्थिति कोड

HttpClient client = new DefaultHttpClient(); 
HttpGet response = new HttpGet("http://www.example.com"); 
ResponseHandler<String> handler = new BasicResponseHandler(); 
String body = client.execute(response, handler); 

मैं स्थिति कोड (202, 404, आदि) कैसे निकाल सकते हैं ? या, यदि 4.1.3 में ऐसा करने का कोई और तरीका है, तो यह क्या है?

इसके अलावा, मुझे लगता है कि एक सही/अच्छी HTTP प्रतिक्रिया HttpStatus.SC_ACCEPTED है लेकिन उस पर भी पुष्टि करना चाहेंगे। अग्रिम में धन्यवाद!

उत्तर

69

संपादित करें:

प्रयास करें साथ:

HttpResponse httpResp = client.execute(response); 
int code = httpResp.getStatusLine().getStatusCode(); 

HttpStatus होना चाहिए 200 (HttpStatus.SC_OK)


(मैं बहुत तेजी से समस्या पढ़ा है!)

इसके साथ प्रयास करें:

GetMethod getMethod = new GetMethod("http://www.example.com"); 
int res = client.executeMethod(getMethod); 

यह चाल चलाना चाहिए!

+0

एनरिकमैन - धन्यवाद, लेकिन यह 4.1.3 में 'GetMethod' मौजूद नहीं है - कोई विचार? – IAmYourFaja

4

मुझे यह पसंद है:

HttpResponse response = client.execute(httppost); 
int status = response.getStatusLine().getStatusCode(); 

एक responseHandler का उपयोग नहीं द्वारा स्ट्रिंग के रूप में respose शरीर प्राप्त करने के लिए हालांकि मैं InputStream के रूप में पहली इसे पाने:

InputStream is = response.getEntity().getContent(); 

और फिर इसे एक में बदलने का स्ट्रिंग (here कैसे करें)

5

इस बारे में कैसे?

HttpResponse response = client.execute(getRequest); 

// Status Code 
int statusCode = response.getStatusLine().getStatusCode(); 

ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
// Response Body 
String responseBody = responseHandler.handleResponse(response); 
संबंधित मुद्दे