Pasando el objeto JSON en la URL del servicio Web RESTFUL en Android?

Estoy trabajando con JSON Restful web serivces donde tengo que pasar objeto JSON en la URL de servicio. He creado el objeto de JSON con éxito pero conseguir la excepción cuando mi URL creó la conexión del HTTP con el SERVIDOR.

Abajo he mencionado mi URL:

http://72.5.167.50:8084/UpdateProfileInfo?{"ProfileEditId":"917","ContactsEmail":[{"Email":"dsfs","ContactId":""}],"ContactsPhone":[{"CountryId":"+1","Type":"2","Phone":"345345"}],"ProfileId":"290","LastName":"demo","GroupId":"1212","Title":"sdf","City":"dsf","TemplateId":"1212","State":"dsf","AuthCode":"9bcc6f63-2050-4c5b-ba44-b8103fbc377a","Address":"sdf","FirstName":"demo","ContactId":"","Zip":"23","Company":"tv"} 

Obtener java.lang.IllegalArgumentException: Illegal character in query en el código:

 int TIMEOUT_MILLISEC = 100000; // 1000 milisec = 1 seconds int SOCKET_TIMEOUT_MILISEC = 120000; // 2 minutes HttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC); HttpConnectionParams.setSoTimeout(httpParams, SOCKET_TIMEOUT_MILISEC); HttpClient client = new DefaultHttpClient(httpParams); HttpPost request = new HttpPost(url); HttpResponse response = client.execute(request); responseString = request(response); 

Por favor, sugerirme Si estoy haciendo algo mal con mi URL.

* EDITADO: * Intentado con una llave todavía conseguir Exeception:

 http://72.5.167.50:8084/UpdateProfileInfo?profileinof={"ProfileEditId":"917","ContactsEmail":[{"Email":"sdf","ContactId":""}],"ContactsPhone":[{"CountryId":"+1","Type":"2","Phone":"345345345"}],"ProfileId":"290","LastName":"demo","GroupId":"1212","Title":"dsf","City":"dsf","TemplateId":"1212","State":"dsf","AuthCode":"d968273a-0110-461b-8ecf-3f9c456d17ac","Address":"dsf","FirstName":"demo","ContactId":"","Zip":"23","Company":"tv"} 

Hay un formato diferente de solicitud HTTP que necesitamos hacer para este tipo de SOLICITUD.

He mencionado mi código abajo para esto.

 public JSONObject getJSONObject(){ return jsonObj; } 

El método ABove me devuelve una cadena JSON que se pasa en el siguiente método.

 public static HttpResponse makeRequest(String url) throws Exception { //instantiates httpclient to make request DefaultHttpClient httpclient = new DefaultHttpClient(); //url with the post data HttpPost httpost = new HttpPost(url); //convert parameters into JSON object JSONObject holder = getJSONObject(); //passes the results to a string builder/entity StringEntity se = new StringEntity(holder.toString()); //sets the post request as the resulting string httpost.setEntity(se); httpost.setHeader("Accept", "application/json"); httpost.setHeader("Content-type", "application/json"); //Handles what is returned from the page ResponseHandler responseHandler = new BasicResponseHandler(); return httpclient.execute(httpost, responseHandler); } 

Stack post me ayudó a hacer esta tarea … !!!

El IP no es correcto.

IP se forma con 4 bytes. Cada byte es un valor de 0 a 255, no puede ser 7 mil.

Http: // 7232 .25.1617.50: 1084

Edit: Está bien, editó su pregunta. Estás enviando un JSON como parámetro. Pero este parámetro no tiene "clave".

Debiera ser:

/ UpdateProfileInfo? Info = {"ProfileEditId": "917", […….]

Edit: Creo que esto debería ser así:

/ UpdateProfileInfo? Info = "{'ProfileEditId': '917', […….]}"

Observe que el valor está rodeado por " , y el interior " se reemplazan ahora por '

Probablemente el problema es que estás intentando POSTAR un objeto JSON como un parámetro de url.
Si realmente tiene que ser un param de url, que tiene que ser urlencoded .
Si más bien debería ser una solicitud POST normal, sugiero que utilice un ayudante de alto nivel :

 new RESTClient2(ctx).post("http://72.5.167.50:8084", jsonObject); 

Puedo ver una necesidad de trabajar con POJOs, convirtiéndolos a las secuencias de JSON y transmitir esa información de la secuencia sobre HTTP. Hay muchas buenas librerías de tipo android / java / apache / volley que permiten eso.

Sin embargo, no entiendo, de hecho no estoy de acuerdo con su requisito de utilizar GET y los parms de URL para el transporte de su cadena de JSON?

Es muy fácil hacer lo siguiente:

POJO -> a JSON -> toString -> a http.string.entity -> POST

¿Por qué no volver a examinar su arquitectura y considerar el uso de POST no obtener.

Entonces su fácil, 2 paso:

Ver ejemplo "request.setEntity (…"

Su código se verá así:

 httpPost.setEntity(new StringEntity(pojo.toJSON().toString())); 
  • Retrofit 2 - obtiene error-objeto JSON (POJO pocos para la misma solicitud)
  • ¿En qué formato (HTML / markdown / JSON) debo recibir algún texto formateado de mi servidor?
  • Excepción no manipulada org.json.jsonexception
  • Cómo eliminar el carácter oculto basura después de php json codificar
  • JSON Parsing problema con Spinners
  • MultipartEntity y Json
  • ¿Cómo mostrar el estado de la barra de progreso por porcentaje mientras se suben los datos de json?
  • Cómo recuperar una lista específica de datos de firebase
  • Obtención de datos de Mysql DB a listView utilizando JSON y PHP
  • JSON `date (...)` a `java.Util.Date` usando` org.json`
  • Android: pasa un objeto JSON entre fragmentos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.