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 un asp.net formulario de aplicación que tiene en la carga de la página esta

 Response.Output.Write("It worked");

Quiero aprovechar esta Respuesta de la HttpReponse y a imprimir. ¿Cómo puedo hacer esto?

Traté de response.getEntity().toString() pero parece que imprimir la dirección en la memoria.

Gracias

InformationsquelleAutor chobo2 | 2010-04-03

5 Comentarios

  1. 38

    Uso ResponseHandler. Una línea de código. Ver aquí y aquí para la muestra de proyectos Android usando.

    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
        }
    } 

    agregar combinación de este post y completa HttpClient en http://www.androidsnippets.org/snippets/36/

    • que android versión de la api hace que este vuelva a estar disponible? Voy a tener que reescribir venir código 😀
    • Creo que ha estado ahí desde el principio, o al menos desde Android 0.9. Es parte de la norma HttpClient 4.x paquete.
  2. 8

    Acabo de hacerlo de la manera antigua. Es una más a prueba de balas que ResponseHandler, en caso de conseguir diferentes tipos de contenido en la respuesta.

    ByteArrayOutputStream outstream = new ByteArrayOutputStream();
    response.getEntity().writeTo(outstream);
    byte [] responseBody = outstream.toByteArray();
  3. 6

    He utilizado 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();
  4. 4

    Este código le devolverá la totalidad del mensaje de respuesta en responder como un String, y el código de estado en rsp, como un int.

    respond = response.getStatusLine().getReasonPhrase();
    
    rsp = response.getStatusLine().getStatusCode();`
  5. 1

    El enfoque más sencillo es, probablemente, el uso de org.apache.http.util.EntityUtils:

    String message = EntityUtils.toString(response.getEntity());

    Lee el contenido de una entidad y la devuelve como una Cadena. El contenido se convierte utilizando el conjunto de caracteres de la entidad (si lo hubiere), en su defecto, «ISO-8859-1» se utiliza.

    Si es necesario, se puede pasar de un conjunto de caracteres por defecto de forma explícita – por ejemplo,

    String message = EntityUtils.toString(response.getEntity(). "UTF-8");

    Que obtiene de la entidad contenido como una Cadena, utilizando el conjunto de caracteres por defecto si no se encuentra ninguno en la entidad. Si el pasado juego de caracteres predeterminado es null, el valor predeterminado «ISO-8859-1» se utiliza.

Dejar respuesta

Please enter your comment!
Please enter your name here