POST de solicitud http de Android

Estoy creando una aplicación de Android simple que envía una solicitud de publicación http a este sitio http://www.ap-ljubljana.si/vozni_red2/VR2.php y luego obtiene la respuesta adecuada según la solicitud posterior. El problema es que mi aplicación no obtiene la misma respuesta que el navegador. ¿Alguna idea de por qué?

archivo java

`HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://www.ap-ljubljana.si/vozni_red2/VR3.php");

    try{

        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        nameValuePairs.add(new BasicNameValuePair("VSTOP_ID", "1"));
        nameValuePairs.add(new BasicNameValuePair("IZSTOP_ID","1"));
        nameValuePairs.add(new BasicNameValuePair("btnNext", "Naprej"));

        httppost.setHeader("Cache-Control", "max-age=0");
        httppost.setHeader("Origin", "http://www.ap-ljubljana.si");
        httppost.setHeader("Referer", "http://www.ap-ljubljana.si/vozni_red2/VR2.php?DATUM="+datum+"&VSTOP_IME=Vstop...&IZSTOP_IME=Izstop...");
        httppost.setHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
        httppost.setHeader("DNT", "1");
        httppost.setHeader("Accept-Encoding", "gzip,deflate,sdch");
        httppost.setHeader("Accept-Language", "sl-SI,sl;q=0.8,en-GB;q=0.6,en;q=0.4");
        httppost.setHeader("Accept-Charset", "ISO-8859-2,utf-8;q=0.7,*;q=0.3");
        //httppost.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11");
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));

        return httpclient.execute(httppost);

    }
    catch (ClientProtocolException e){

        return null;
    }
    catch (IOException e){

        return null;
    }`

Solicitud de publicación http del navegador

http://i45.tinypic.com/zvqww7.jpg

preguntado el 02 de julio de 12 a las 13:07

solicitud de publicación http de mi aplicación i45.tinypic.com/2poqh4y.jpg -

Asegúrese de realizar esta conexión en un subproceso separado... no en el subproceso de la interfaz de usuario. -

sí, sé que tengo que usar subprocesos múltiples, pero ese no es el problema ya que estoy recibiendo una respuesta, ¿verdad? ¿Cómo puedo usar las cookies? -

El punto es que mi solicitud de aplicaciones solo funciona si ya tengo este sitio abierto en mi navegador. -

2 Respuestas

Falta información de cookies en su solicitud de aplicación. Puede ser que esté creando problemas. Creo que algunas depuraciones del lado del servidor pueden resolver este problema.

Respondido 02 Jul 12, 13:07

Creo que no está accediendo a la URL exacta ya que las URL que está accediendo no son API, AFAIT, porque esta es la URL de la página web que apunta a ella.

En el navegador, cuando lo hace, hay otros enlaces API que están realizando tareas y obtiene la respuesta correcta, ya que las páginas web se crean de esa manera para ayudarlo a conocer el resultado de la respuesta, pero cuando lo hace en este enlace, en realidad está devolviendo contenido de los enlaces php mencionados anteriormente. , mientras que el trabajo principal lo realizan otros enlaces API.

Por favor, avísame si me equivoco, así puedo ayudarte.

Respondido 02 Jul 12, 13:07

Sí, creo que la URL adecuada debería ser la de Referer, pero no recibo ninguna respuesta si uso esa. - inejc

Sí exactamente, ese es el que tienes que pasar. Además, asegúrese de que necesita pasar todos estos valores en su solicitud de acuerdo con la documentación de la API que recibió, ni más ni menos, lo que puede resultar en una respuesta nula. Intente usar su URL de referencia actual como URL principal y reemplace su ORIGEN y REFERENCIA con este: "http: // www.ap-ljubljana.si /" (elimine los espacios) y confirme el resultado. - aby

Hice lo que dijiste y en realidad pensé que funcionaba (solo funciona si abro la página que espero obtener en mi navegador y luego envío la publicación a través de la aplicación). De lo contrario obtengo la respuesta incorrecta de nuevo. i47.tinypic.com/ws4s5w.jpg - inejc

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.