2011-02-09 11 views
5

No obteniendo el cuerpo de respuesta para http post request en android.
estoy mencionando el identificador de usuario, contraseña en los pares de valores de nombre y poner en la solicitud HttpPost por¿No está obteniendo el cuerpo de respuesta para la solicitud de http en android?

postrequest.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

pero en la ejecución que estoy recibiendo la respuesta como SC_OK (200), pero el cuerpo de la respuesta es null.

Un problema más es si especifico el encabezado en HTTPGet o la solicitud de HTTPPost usando la función setHeader() obtengo una respuesta MALA PETICIÓN (404).

Por favor, ayúdenme a resolver el problema anterior.

Gracias & Saludos,
SSuman185

+1

ponga el código donde llama y lea la respuesta. – Aliostad

+1

¿Verificaste que el servidor realmente envió una respuesta? – sstn

+0

El servidor no está en nuestra empresa, su servidor de terceros. Y obtengo la BAD Request y del encabezado y los registros de red encontré que la respuesta proviene del servidor solo – Suman

Respuesta

0

Hola amigo pl tratar de esta manera a obtener una respuesta desde el servidor ..

Dónde enlace dado es el enlace donde u desea publicar la solicitud ..

String link2 = "http://184.106.227.45/quaddeals/university-of-illinois/androids_deals/user_card_list.json"; 

DefaultHttpClient hc1 = new DefaultHttpClient(); 

ResponseHandler<String> res1 = new BasicResponseHandler(); 

HttpPost postMethod1 = new HttpPost(link2); 

List<NameValuePair> nameValuePairs1 = new ArrayList<NameValuePair>(1); 

nameValuePairs1.add(new BasicNameValuePair("user_id",account_userId)); 

postMethod1.setEntity(new UrlEncodedFormEntity(nameValuePairs1)); 

String response1 = hc1.execute(postMethod1, res1); 
+0

Hola Venkatesh, en realidad estoy usando HttpClient y client.execute() y está funcionando bien en el Objetivo pero no en el simulador, ya que estamos usando el proxy en nuestra empresa intenté poner proxy en el simulador con -http-proxy como bueno, pero todavía no hay suerte – Suman

1

he aquí un método para realizar fácilmente una POST a una página y obtener la respuesta como una cadena. El primer parámetro (el HashMap) es una lista de valores clave de los parámetros que desea enviar. No hay un manejo de errores, por lo que tendrá que hacer eso:

public static String doPost(HashMap<String,String> params, String url) { 
     HttpPost httpost = new HttpPost(url); 
     try { 
      httpost.setURI(new URI(url)); 
     } catch (URISyntaxException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 
     HttpResponse response = null; 

     List <NameValuePair> nvps = new ArrayList <NameValuePair>(); 

     Set entryset = params.entrySet(); 
     Iterator iterator = entryset.iterator(); 
     Log.d("Posted URL: ", url+" "); 
     while(iterator.hasNext()) { 
      Map.Entry mapentry = (Map.Entry)iterator.next(); 
      String key = ((String)mapentry.getKey()).toString(); 
      String value = (String)mapentry.getValue(); 
      nvps.add(new BasicNameValuePair(key, value)); 

      Log.d("Posted param: ", key+" = "+value); 
     } 

     try { 
      httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); 
      try { 
       httpost.setURI(new URI(url)); 
      } catch (URISyntaxException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 
      response = getClient().execute(httpost); 
      HttpEntity entity = response.getEntity(); 

      return convertStreamToString(entity.getContent()); 
     } catch (Exception e) { 
      // some connection error occurred, nothing we can do 
      e.printStackTrace(); 
     } 

     return null; 
    } 
Cuestiones relacionadas