Código de respuesta inesperado 500 API de URL Aplicación para Android

Tengo el problema "código de respuesta inesperado 500", cuando tengo acceso a la API de la URL.

Este mi código con volley library:

String url= "http://103.241.24.35/android/android_login_api/index.php"; public void detailURL(String url) { Log.v("Android Spinner JSON Data Activity", url); queue = Volley.newRequestQueue(this); StringRequest sr = new StringRequest(Request.Method.POST,url, new Response.Listener<String>() { @Override public void onResponse(String response) { ProgressLoadStartLogin.setVisibility(View.GONE); displaystatis_kontenDetail(response); btn_enable(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { if( error instanceof NetworkError) { } else if( error instanceof ServerError) { } else if( error instanceof AuthFailureError) { } else if( error instanceof ParseError) { } else if( error instanceof NoConnectionError) { } else if( error instanceof TimeoutError) { } statusKoneksi(); btn_enable(); ProgressLoadStartLogin.setVisibility(View.GONE); } }){ @Override protected Map<String,String> getParams(){ Map<String,String> params = new HashMap<String, String>(); params.put("tag",Variabel.login_tag); params.put("username",user); params.put("password", password); params.put("idgcm",GCMid); return params; } @Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String,String> params = new HashMap<String, String>(); params.put("Content-Type","application/x-www-form-urlencoded"); return params; } }; queue.add(sr); } 

Y he establecido permiso de Internet en mi manifiesto.

Si la URL I copiar en el navegador, se responde esto, puedo acceder pero si pongo mi código, obtengo Error 500.

NB : URL esta única dirección IP, causa que esta es la dirección IP de mi servidor VPS y todavía no estoy establecido dominio de mi servidor …

¿Cómo puedo arreglarlo? Lo siento por mi inglés.

Este no es el problema de la biblioteca, los navegadores suelen ignorar el error 500 en los encabezados y mostrar el contenido, pero la dosis de voleo no hacer eso y llamar onErrorResponse. Creo que esto es un problema de aplicación del lado del servidor, pero puede obtener su respuesta en onErrorResponse. Con el fin de convencerse a sí mismo puede agregar RESCOLENT mozilla añadir y enviar su solicitud de volley y ver la respuesta. En el encabezado que muestra error 500 error interno del servidor, pero se puede ver la respuesta en la sección de cuerpo

Aquí está la solución para este error. En primer lugar, necesita ampliar la clase de @Override protected Response parseNetworkResponse(NetworkResponse response) { y modificar la @Override protected Response parseNetworkResponse(NetworkResponse response) { así:

 public class CustomRequest extends Request { public CustomRequest(int method, String url, ErrorListener listener) { super(method, url, listener); // TODO Auto-generated constructor stub } @Override protected Response parseNetworkResponse(NetworkResponse response) { System.out.println(response.statusCode); try { Log.d("custom response", "[raw json]: " + (new String(response.data))); Gson gson = new Gson(); String json = new String(response.data, HttpHeaderParser.parseCharset(response.headers)); return Response.success(response.data, HttpHeaderParser.parseCacheHeaders(response)); } catch (UnsupportedEncodingException e) { return Response.error(new ParseError(e)); } catch (JsonSyntaxException e) { return Response.error(new ParseError(e)); } } @Override protected void deliverResponse(Object arg0) { // TODO Auto-generated method stub } } //-------------------------------------- //to make request to server we need to use our custom Request like this : JsonObjectRequest mJsonObjectRequest = new JsonObjectRequest( CustomRequest.Method.POST, url, obj, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { ; try { Toast.makeText( 

Y en el oyente de error:

 @Override public void onErrorResponse(VolleyError arg0) { Log.e("erro;r", "error"); if(arg0.networkResponse.statusCode==500){ Log.e("error", "" + new String(arg0.networkResponse.data)); try { JSONObject obj = new JSONObject(new String(arg0.networkResponse.data)); int codeErreur = obj.getInt("code_erreur"); if (codeErreur == 501) { Drawable warning = (Drawable) MonEntretienApplication.getInstance().getResources().getDrawable(R.drawable.warning_red); warning.setBounds(new Rect(0, 0, warning.getIntrinsicWidth(), warning.getIntrinsicHeight())); email.setError("",warning); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.