2011-08-17 14 views
5

Actualmente estoy trabajando en una aplicación ... en esa aplicación tengo que usar get y publicar ambos métodos ... get method funciona correctamente pero en el método post de repente recibo la respuesta comoCómo configurar el encabezado usando el método http post

"invalid method.post required".. 

mi código para que sea:

 String list_url = "************************"; 
    try { 

     String appand = TimeStampForAuth.TimeStameMethod(main.this); 
     String auth = android.util.Base64.encodeToString(("iphone" + ":" + 
      "2a5a262d5a") 
     .getBytes("UTF-8"), android.util.Base64.NO_WRAP); 

     DefaultHttpClient client = new DefaultHttpClient(); 
     HttpPost post = new HttpPost(list_url+appand); 

     Log.d("URL_LIST", list_url+appand); 

     List nvps = new ArrayList(); 
     nvps.add(new BasicNameValuePair("login",Login)); 
     nvps.add(new BasicNameValuePair("password",password)); 
     nvps.add(new BasicNameValuePair("title",title)); 
     nvps.add(new BasicNameValuePair("category_id",cat_id)); 




     UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(nvps,HTTP.UTF_8); 
     post.addHeader("Authorization", "Basic " + auth); 
     post.setEntity(p_entity); 
     HttpResponse response = client.execute(post); 
     HttpEntity responseEntity = response.getEntity(); 
     String s = EntityUtils.toString(responseEntity); 
     Log.d("List response", s); 

    } 
    catch(Exception e){ 
     System.out.println(e.toString()); 
    } 

en que me falta somethinf o lo que yo no know..is toda esa cosa es válida para el método de post ....

favor me ayude lo más pronto posible ...

agradeciendo .........

+0

podría ser un problema serverside? Ya intenté iniciar la solicitud con RESTClient-Addon? – Tima

+0

no hay ningún problema desde el servidor ... solicitud de servidor enviar como solicitud de obtención usando este método ... es posible ... por favor ayúdame ... no sé qué está yendo mal con este código ... – Kutbi

+0

seguro, tu código con publicación solicitud y no obtener solicitud se ejecutará? tratar de depurar con los puntos de interrupción – Tima

Respuesta

1

Intente utilizar setHeader() en lugar de addHeader()

+0

intenté pero no cambié en absoluto ... si importa cambiar setHeader() en lugar de addHeader() .. ??? da la respuesta correcta antes de una semana y también confirmo desde el lado del cliente que todo Lo correcto es ... – Kutbi

1

Usted podría intentar HttpClient 4.1 para Android: http://code.google.com/p/httpclientandroidlib/ (Hay errores en la versión 4.0 de HttpClient que usa Android). También puede depurar un poco más con httpClient.log.enableDebug (true);

Si no desea utilizar una biblioteca externa, comenzaría a depurar el tráfico de la red. Con un software llamado Wireshark puede ver e inspeccionar todas las peticiones/respuestas HTTP muy fácilmente.

Para la autorización yo personalmente utilizo:

httpClient.getCredentialsProvider().setCredentials(
    new AuthScope(hostname, port), 
    new UsernamePasswordCredentials(user, pass)); 
-1

uso de esta forma:

HttpURLConnection connection = (HttpsURLConnection) serviceURL.openConnection(); 
    connection.setRequestMethod("POST"); 
Cuestiones relacionadas