2014-06-10 19 views
6

URL API'ye eriştiğimde "Beklenmeyen yanıt kodu 500" sorunu yaşıyorum.Beklenmeyen yanıt kodu 500 URL API Android uygulaması

voleybolu kütüphanesi ile Bu benim kod:

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); 
     } 

Ve ben, gümrük bildirgesinde izin interneti belirledik.

Ben tarayıcısında kopya URL bu yanıt ise, ben erişen olabilir ama benim kodunda koyarsanız, ben Error 500.

NB olsun: URL bu yalnızca IP adresi, bu IP adresidir neden benim VPS sunucum ve henüz etki alanımı ayarlamam ...

Nasıl düzeltebilirim? İngilizcem için üzgünüm.

+0

tarayıcısı siz telefonunuzdaki tarayıcıyı demek:

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( 

ve hata dinleyici içinde

? – Byron

+0

evet efendim, tarayıcı telefonumda test ediyorum – bukanamay

+0

@bukanamay Sorununuz çözüldü mü? Ve ikinci soru: Bu başlık gerekli mi? –

cevap

5

Bu, kitaplığınızdaki bir sorun değildir, tarayıcılar genellikle üstbilgilerde hata 500'ü göz ardı eder ve içeriği görüntüler, ancak voleybol dozu bunu yapmaz ve onErrorResponse'yi çağırır. Bunun bir sunucu tarafı uygulaması sorunu olduğunu düşünüyorum, ancak yanıtınızı onErrorResponse'de alabilirsiniz. Kendinizi ikna etmek için RESTClient mozilla ekleyebilir ve voleybol isteğinizi gönderebilir ve cevabı görebilirsiniz. üstbilgide hata 500 iç sunucu hatası gösterir, ancak bu bölümdeki yanıtı görebilirsiniz

+0

Evet, bu doğru, ممنون –

+0

Tarayıcıda çalıştığını görebiliyorum. Ama Volley'de nasıl idare edilir? –

+0

Aynı sorun karşısında sorun çözülmez. aynı servis iyi çalışır ios – CrazyMind

1

İşte bu hata için çözüm. Öncelikle böyle @Override protected Response parseNetworkResponse(NetworkResponse response) { Reponse sınıfını genişletmek ve değiştirmek gerekir:

@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(); 
     }   
+0

Bu herhangi bir kişi için işe yaradı mı? – NovusMobile

İlgili konular