java - getinputstream - httpurlconnection android post
¿Cómo imprimir el mensaje devuelto desde HttpResponse? (5)
El enfoque más sencillo es probablemente usar org.apache.http.util.EntityUtils
:
String message = EntityUtils.toString(response.getEntity());
Lee el contenido de una entidad y lo devuelve como una cadena. El contenido se convierte utilizando el conjunto de caracteres de la entidad (si existe), de lo contrario, se usa "ISO-8859-1".
Si es necesario, puede pasar un conjunto de caracteres predeterminado explícitamente, por ejemplo,
String message = EntityUtils.toString(response.getEntity(). "UTF-8");
Obtiene el contenido de la entidad como una cadena, utilizando el conjunto de caracteres predeterminado proporcionado si no se encuentra ninguno en la entidad. Si el conjunto de caracteres predeterminado pasado es nulo, se usa el valor predeterminado "ISO-8859-1".
Tengo este código en mi teléfono Android.
URI uri = new URI(url);
HttpPost post = new HttpPost(uri);
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(post);
Tengo una aplicación de formulario web de asp.net que tiene en la página cargar esto
Response.Output.Write("It worked");
Quiero obtener esta Respuesta de la Respuesta al Cliente e imprimirla. ¿Cómo hago esto?
Intenté response.getEntity().toString()
pero parece que solo imprime la dirección en la memoria.
Gracias
Este código devolverá el mensaje de respuesta completo en responder como una String
y el código de estado en rsp , como un int
.
respond = response.getStatusLine().getReasonPhrase();
rsp = response.getStatusLine().getStatusCode();`
Simplemente lo haría a la manera antigua. Es más a prueba de balas que ResponseHandler, en caso de que obtenga diferentes tipos de contenido en la respuesta.
ByteArrayOutputStream outstream = new ByteArrayOutputStream();
response.getEntity().writeTo(outstream);
byte [] responseBody = outstream.toByteArray();
Use el siguiente código
BufferedReader r = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuilder total = new StringBuilder();
String line = null;
while ((line = r.readLine()) != null) {
total.append(line);
}
r.close();
return total.toString();
Utilice ResponseHandler
. Una línea de código. Consulte here y here para ver ejemplos de proyectos de Android que lo utilizan.
public void postData() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.yoursite.com/user");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("id", "12345"));
nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
ResponseHandler<String> responseHandler=new BasicResponseHandler();
String responseBody = httpclient.execute(httppost, responseHandler);
JSONObject response=new JSONObject(responseBody);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
agregue la combinación de esta publicación y complete HttpClient en - http://www.androidsnippets.org/snippets/36/