Peticion HTTP enviando un parametro Json por GET

4,485 views
Skip to first unread message

l.montt

unread,
Mar 14, 2012, 2:14:29 PM3/14/12
to desarrolladores-android
Hola
Tengo un problema que ojala puedan ayudarme,
Estoy realizando una petición HTTP y esta se realiza bien, el problema
es que necesito agregarle parámetros GET y uno de ellos es con un
valor en JSON quedando de esta forma:

http://www.xxxxx.com/index.php?u=1&se=hola&params={"user_name":"usuario","user_password":"Admin123.,"}



al agregar la cadena
{"user_name":"usuario","user_password":"Admin123.,"} me sale esto en
el logCat y sin ella funciona bien

03-14 14:43:22.824: W/System.err(548):
java.lang.IllegalArgumentException: Illegal character in query at
index 91: http://www.xxxxx.com/index.php?u=1&se=hola&params={"user_name":"usuario","user_password":"Admin123.,"}
03-14 14:43:22.824: W/System.err(548): at
java.net.URI.create(URI.java:970)
03-14 14:43:22.824: W/System.err(548): at
org.apache.http.client.methods.HttpGet.<init>(HttpGet.java:75)
03-14 14:43:22.824: W/System.err(548): at
lmontt.university.Login.getJSONdata(Login.java:125)
03-14 14:43:22.824: W/System.err(548): at
lmontt.university.Login.access$0(Login.java:118)
03-14 14:43:22.834: W/System.err(548): at lmontt.university.Login
$DownloadTask.doInBackground(Login.java:70)
03-14 14:43:22.834: W/System.err(548): at lmontt.university.Login
$DownloadTask.doInBackground(Login.java:1)
03-14 14:43:22.834: W/System.err(548): at android.os.AsyncTask
$2.call(AsyncTask.java:185)
03-14 14:43:22.834: W/System.err(548): at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
03-14 14:43:22.834: W/System.err(548): at
java.util.concurrent.FutureTask.run(FutureTask.java:137)
03-14 14:43:22.834: W/System.err(548): at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:
1068)
03-14 14:43:22.834: W/System.err(548): at
java.util.concurrent.ThreadPoolExecutor
$Worker.run(ThreadPoolExecutor.java:561)
03-14 14:43:22.834: W/System.err(548): at
java.lang.Thread.run(Thread.java:1096)



De esta manera armo la url y escapo las comillas dobles

getJSONdata("http://www.xxxxx.com/index.php?
u=1&se=hola&params={\"user_name\":\"usuario\",\"user_password\":
\"Admin123.,\"}")



Esta es el código donde realizo la petición:

private String getJSONdata(String url) {

String response = "";
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet method = new HttpGet(url);
HttpResponse httpResponse = httpClient.execute(method);
InputStream is = httpResponse.getEntity().getContent();
response = convertStreamToString(is);
} catch (Exception e) {
e.printStackTrace();
}
Log.i("phpwsex", "JSON Response: " + response);
return response;
}


De que manera puedo agregar este parámetro json? ya que esta bien
armado porque si lo ejecuto directamente en el navegador me retorna
los datos sin ningún problema.

Saludos.

Jose Alberto Rodríguez Martín

unread,
Mar 14, 2012, 2:17:32 PM3/14/12
to desarrollad...@googlegroups.com
Debes serializar el json y en el web, deserializarlo.

Un saludo,

     José Alberto




--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-a...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/desarrolladores-android?hl=es.




--
Un saludo,

    José Alberto

--

Tlf. +34 651 50 67 72
Email. in...@josealbertonerja.com
Web. http://www.josealbertonerja.com
http://www.webmastersmalaga.com
http://www.cursoseomalaga.com
http://www.iniciador.com

luis montt

unread,
Mar 14, 2012, 2:19:51 PM3/14/12
to desarrollad...@googlegroups.com
Hola Jose, disculpa pero a que te refieres con " serializar el json "?

Jose Alberto Rodríguez Martín

unread,
Mar 14, 2012, 2:27:13 PM3/14/12
to desarrollad...@googlegroups.com
Me pillas fuera de casa, pero haciendo una búsqueda en Google vi esto http://code.google.com/p/json-io/
Serializar digamos que es un proceso para pasar un objeto  a un String.

luis montt

unread,
Mar 14, 2012, 2:40:05 PM3/14/12
to desarrollad...@googlegroups.com
Entiendo, pero sera necesario hacer esa operación? ya que estoy armando un String que tiene el formato de un json pero no es un objeto, es solo una cadena de caracteres

Saludos...

Juan de Dios Maldonado Sánchez

unread,
Mar 14, 2012, 2:56:28 PM3/14/12
to desarrollad...@googlegroups.com
Necesitas codificar la cadena que contiene el JSON con la clase:


De esta forma, la URL será correcta y todo te debería ir bien.
An'Brain - Prueba el nuevo widget inteligente para tu Android.
Idiotizer Free - Idiotiza a tus amigos. (Se requieren auriculares)
Track My App - Realiza un seguimiento de tus aplicaciones en el Android market.

Darry Castro

unread,
Mar 14, 2012, 5:15:40 PM3/14/12
to desarrollad...@googlegroups.com, l.montt

Darry Castro

Buenas tardes,


Espero este link te pueda ayudar
http://www.androidhive.info/2012/01/android-json-parsing-tutorial/
.





Saludos cordiales.
Ing. Darry Marlon Castro Capovich
Account Manager.
MCP Microsoft.
Aripagua, C.A.
Web site. http://www.aripagua.com

Este mensaje está destinado a las personas o entidades a quienes está dirigido y contiene información confidencial o privilegiada. Si ha recibido este mensaje y no está dirigido a usted, no podrá hacer uso del mismo, ni copiarlo o distribuirlo. Le rogamos se sirva notificarnos utilizando Reply Mail y borrar este mensaje, en caso que lo haya recibido por error. Gracias


Reply all
Reply to author
Forward
0 new messages