2012-06-06 8 views
36

Verwendung von Apache Httpclient 4.1.3 und zu versuchen, den Statuscode von einem HttpGet zu bekommen:Httpclient get Statuscode

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

Wie kann ich den Statuscode extrahieren (202, 404, etc.) aus der body ? Oder, wenn es in 4.1.3 einen anderen Weg gibt, was ist das?

Auch, ich nehme an, eine perfekte/gute HTTP-Antwort ist ein HttpStatus.SC_ACCEPTED, aber möchte Bestätigung darüber auch. Danke im Voraus!

Antwort

69

EDIT:

Versuchen mit:

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

Der Httpstatus sollte 200 (HttpStatus.SC_OK) sein


(ich zu schnell das Problem gelesen habe!)

Versuchen Sie mit:

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

Dies sollte den Trick machen!

+0

Enrichman - danke aber es sieht nicht aus wie 'GetMethod' existiert in 4.1.3 - irgendwelche Ideen? – IAmYourFaja

4

Ich mag es:

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

Um den respose Körper als String bekommen allerdings durch keine responseHandler mit ich es zuerst als Input:

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

und wandeln sie dann in ein String (Möglichkeiten, wie das zu tun ist here)

5

Wie wäre es damit?

HttpResponse response = client.execute(getRequest); 

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

ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
// Response Body 
String responseBody = responseHandler.handleResponse(response);