validar sirve seleccionar seleccionado que para modificar item haya getselecteditem eventos evento algo java http apache-httpclient-4.x

java - sirve - ¿Cómo obtener el código de estado y el cuerpo de respuesta de HttpClient?



modificar jcombobox java (5)

BasicResponseHandler tira si el estado no es 2xx. Ver su javadoc .

Así es como lo haría:

HttpResponse response = client.execute( get ); int code = response.getStatusLine().getStatusCode(); InputStream body = response.getEntity().getContent(); // Read the body stream

O también puede escribir un ResponseHandler comenzando desde la fuente BasicResponseHandler que no se lanza cuando el estado no es 2xx.

Estoy intentando que Apache HttpClient active una solicitud HTTP y luego muestre el código de respuesta HTTP (200, 404, 500, etc.) y el cuerpo de respuesta HTTP (cadena de texto). Es importante tener en cuenta que estoy usando v4.2.2 porque la mayoría de los ejemplos de HttpClient son de v.3.xx y la API cambió mucho de la versión 3 a la versión 4.

Lamentablemente, solo he podido hacer que HttpClient devuelva el código de estado o el cuerpo de respuesta (pero no ambos).

Esto es lo que tengo:

// Getting the status code. HttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet("http://whatever.blah.com"); HttpResponse resp = client.execute(httpGet); int statusCode = resp.getStatusLine().getStatusCode(); // Getting the response body. HttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet("http://whatever.blah.com"); ResponseHandler<String> handler = new BasicResponseHandler(); String body = client.execute(httpGet, handler);

Entonces pregunto: Usando la biblioteca v4.2.2 , ¿cómo puedo obtener el código de estado y el cuerpo de respuesta desde la misma client.execute(...) ? ¡Gracias por adelantado!


Fachada API de fachada:

Response response = Request.Get(uri) .connectTimeout(MILLIS_ONE_SECOND) .socketTimeout(MILLIS_ONE_SECOND) .execute(); HttpResponse httpResponse = response.returnResponse(); StatusLine statusLine = httpResponse.getStatusLine(); if (statusLine.getStatusCode() == HttpStatus.SC_OK) { // 响应内容编码自适应?(好像没那么智能) String responseContent = EntityUtils.toString( httpResponse.getEntity(), StandardCharsets.UTF_8.name()); }


No proporcione el controlador para execute .

Obtenga el objeto HttpResponse , use el controlador para obtener el cuerpo y obtenga el código de estado directamente

HttpResponse response = client.execute(httpGet); String body = handler.handleResponse(response); int code = response.getStatusLine().getStatusCode();


Puede evitar BasicResponseHandler, pero use HttpResponse para obtener el estado y la respuesta como String.

HttpResponse response = httpClient.execute(get); // Getting the status code. int statusCode = response.getStatusLine().getStatusCode(); // Getting the response body. String responseBody = EntityUtils.toString(response.getEntity());


Si estás usando Spring

return new ResponseEntity<String>("your response", HttpStatus.ACCEPTED);