web-dev-qa-db-fra.com

HttpClient obtenir le code d'état

Utiliser Apache HttpClient 4.1.3 et essayer d'obtenir le code d'état à partir d'un HttpGet:

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

Comment puis-je extraire le code d'état (202, 404, etc.) du body? Ou, s'il y a une autre façon de faire cela en 4.1.3, qu'est-ce que c'est?

En outre, je suppose qu'une réponse HTTP parfaite/bonne est un HttpStatus.SC_ACCEPTED mais j'aimerais également avoir une confirmation à ce sujet. Merci d'avance!

38
IAmYourFaja

MODIFIER:

Essayez avec:

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

Le HttpStatus doit être 200 (HttpStatus.SC_OK)

(J'ai lu trop vite le problème!)


Essayez avec:

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

Cela devrait faire l'affaire!

73
Enrichman

Que dis-tu de ça?

HttpResponse response = client.execute(getRequest);

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

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

Je le fais comme:

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

Cependant, pour obtenir le corps de la réponse en tant que chaîne en n'utilisant pas de gestionnaire de réponse, je l'obtiens d'abord en tant que InputStream:

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

puis le convertir en une chaîne (comment faire cela ici )

4
anastluc