PDA

Ver la Versión Completa : [ CONSULTA ] Peticiones XMLHTTPResquest


androizado
20/05/16, 08:20:16
Hola gente, tengo un problemilla y es que en una parte de una app que desarrollo al hacer click sobre un Button tengo que realizar una petición XMLHTTPResquest, este tipo de peticiones siempre las he usado en web mediantes Ajax.

El problema es que no sé o por lo menos no encuentro la manera, después de investigar un rato largo, de poder realizar está tipo de petición con Android.

Estaba buscando si en vez de instaciar,

HttpClient HTTP_CLIENT = new DefaultHttpClient();

había otro tipo de instancia para realizar este tipo de petición, pero no encontré nada. He estado buscando alguna posibilidad de decirle a DefaultHttpCliente() que quiero realizar este tipo de petición, pero tampoco he encontrado nada.

Estoy buscando a ver si con alguna librería como Volley me lo permite realizar, si alguien sabe algo y me podría echar una mano.

Gracias por adenlantado.

mocelet
20/05/16, 08:50:28
La petición sigue siendo HTTP normal y corriente, no busques un tipo extraño de petición porque no existe. Cualquier ejemplo para descargar el contenido de una URL te vale, y Volley también claro.

El xmlhttprequest es un método de javascript para decirle que quieres que el navegador se baje la URL y en vez de presentarlo como página te guarde el contenido. En una app te lo bajas y haces lo que quieras con el contenido.

androizado
20/05/16, 09:03:29
Gracias mocelet, sí entiendo que es una petición normal simplemente que añade ese método de javascript para recoger el contenido y mostrarlo. Pero el servidor por ejemplo realizo lo siguiente:

HttpPut httpPut = new HttpPut(URL);
httpPut.setHeader(HTTP.CONTENT_TYPE, "application/json");

try {
httpPut.setEntity(new StringEntity(parameters));
httpResponse = HTTP_CLIENT.execute(httpPut);
String respStr = EntityUtils.toString(httpResponse.getEntity());
RESPONSE = new JSONObject(respStr);
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}Si en esa petición no le indico que es con el método XMLHTTPRequest la respuesta del servidor es mala. :S probablemente porque en el servidor me programaron una verificiación para que solo conteste siempre y cuando venga ese método de javascript. Preguntaré a ver que me dicen.

No obstante ví que algo se puede hacer con HttpURLConnection, para esté tipo de casos, aunque estoy totalmente de acuerdo contigo, al fin y al cabo es un tipo de solicitud normal.

mocelet
20/05/16, 09:09:36
Mirarán alguna cabecera de la petición, puedes ver los mensajes HTTP en chrome o Firefox con sus opciones de desarrollo.

Pero la petición es un GET o un POST, no hay más. Eso sí, con las cabeceras que sea.

P.D. Puede que miren la http requested with con valor xmlhttprequest, sería cuestión de añadir la cabecera a la petición.

androizado
20/05/16, 10:14:26
Perfecto, voy a seguir investigando y ya digo. :)