Código de respuesta inesperado 500 para el método POST

Estoy haciendo una actualización sobre el proyecto antiguo y no tengo mucho conocimiento de Android desde ahora. En el proyecto tenemos la sección de comentarios sobre el producto.

Para el comentario después de enviar más temprano teníamos vuelta como 0 (un cierto error) y 1 (éxito).

Debajo está el código que estábamos usando.

final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest( Method.POST, act.getString(R.string.CommentForUserURL), null, new Response.Listener<JSONObject>() { @Override public void onResponse( JSONObject response) { Log.d("response done", "done===" + response); mloading.setVisibility(View.GONE); if (response != null) { Comment obj = new Comment(); JSONObject jsonObject = response; try { obj.setComment(jsonObject .getString("Comment")); 

Ahora hemos cambiado el objeto de retorno de 0/1 a objeto de usuario.

¿Necesita esta necesidad de actualizar JsonObjectRequest a petición de GJSON? ¿O el objeto también será analizado con JsonObjectRequest?

Estoy pidiendo porque cuando ejecuto arriba, obtengo el error como abajo.

 01-25 12:30:21.754: E/Volley(16487): [10114] BasicNetwork.performRequest: Unexpected response code 500 for http://new.souqalharim.com/add/CommentForMerchant 

¿Alguna idea de por qué estoy recibiendo este error?

Nota: Esta URL funciona correctamente para la aplicación de iPhone.


Editar 1

Éste es método del poste, así que la URL completa no está allí. Hay pocos más parámetros para agregar como? Comment = MyComment & userId = 123 & productId = 234. Como se post no estoy añadiendo parámetros en url real.

Tengo los de otros métodos

 @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> params = new HashMap<String, String>(); params.put("productId", productId.toString()); params.put("userId", mSessionManager.getUserCode().toString()); params.put("comment", GlobalFunctions .EncodeParameter(med_comments .getText().toString())); return params; } 

URL completa es la siguiente.

Http://new.souqalharim.com/add/CommentForUser?productId=325&userId=5&comment=abcd

He probado esto en Mozilla RESTClient y funciona bien.


Editar 2

Después de revisar más, encontré protected Map<String, String> getParams() throws AuthFailureError { no se llama. ¿Alguna idea de por qué está pasando esto?

El problema está abajo.

 final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest( Method.POST, act.getString(R.string.CommentForUserURL), null, new Response.Listener<JSONObject>() { ^^^^ 

Debería ser

 final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest( Method.POST, act.getString(R.string.CommentForUserURL), new JSONObject(params), new Response.Listener<JSONObject>() { ^^^^^^^^^^^^^^^^^^^^^^ 

Copie el código del protected Map<String, String> getParams() antes de final JsonObjectRequest .

¡¡¡Eso es!!!

La razón es como abajo.

El JsonObjectRequest es JsonRequest extendido que sobreescribe el método getBody() directamente, por lo que su getParam () nunca invocaría, le recomiendo que extienda StringRequest en lugar de JsonObjectRequest.

Su puede comprobar esta respuesta para más detalles.

Intente cambiar el permiso de archivo php a 755 .

  • Cómo configurar la cadena de respuesta JSON formateada en un TextView?
  • Análisis de JSON y guardarlos en la base de datos SQLite
  • POST solicitud Android con parámetros en json
  • Beneficios de GSON sobre el análisis normal de JSON
  • Werid ClassCastException en TreeMap.containsKey ()
  • Gson - Igual nombre de campo, diferentes tipos
  • Publicar campos en este formato con Retrofit
  • Obtenga el objeto JSON uno por uno desde la matriz JSON en Android utilizando Retrofit y RxJava
  • El servidor GCM de Google devuelve Error no autorizado 401
  • ¿Cómo implementar autocompletetextview con listview?
  • AFNetworking para Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.