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¶ms={"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¶ms={"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¶ms={\"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.