2014-06-10 9 views
6

मुझे यूआरएल एपीआई तक पहुंचने पर "अप्रत्याशित प्रतिक्रिया कोड 500" समस्या है।अप्रत्याशित प्रतिक्रिया कोड 500 यूआरएल एपीआई एंड्रॉइड ऐप

वॉली पुस्तकालय के साथ यह मेरा कोड:

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

और मैं अपने प्रकट पर अनुमति इंटरनेट निर्धारित किया है।

यदि वह URL मैं ब्राउज़र पर कॉपी, इस प्रतिक्रिया व्यक्त की है, मैं पहुँचता सकते हैं, लेकिन अगर मैं अपने कोड में डाल दिया, मैं त्रुटि मिल 500.

नायब: यूआरएल यह केवल आईपी पते, कारण यह IP पता है मेरा वीपीएस सर्वर और मैं अभी तक मेरा सर्वर डोमेन सेट नहीं कर रहा हूं ...

मैं इसे कैसे ठीक कर सकता हूं? मेरी अंग्रेजी के लिए खेद है।

+0

ब्राउज़र करके आप अपने फोन पर ब्राउज़र मतलब है? – Byron

+0

हाँ महोदय, मैं अपने ब्राउज़र फोन पर परीक्षण कर रहा हूं – bukanamay

+0

@ बुक्कनम क्या आपकी समस्या हल हो गई? और दूसरा सवाल: क्या यह हेडर आवश्यक है? –

उत्तर

5

यह आपकी लाइब्रेरी समस्या नहीं है, ब्राउज़र आमतौर पर हेडर में त्रुटि 500 ​​को अनदेखा करते हैं और सामग्री प्रदर्शित करते हैं लेकिन वॉली डोस ऐसा नहीं करते हैं और एरर रेस्पॉन्स पर कॉल करते हैं। मुझे लगता है कि यह एक सर्वर साइड एप्लिकेशन समस्या है लेकिन आप एरर रेस्पॉन्स पर अपनी प्रतिक्रिया प्राप्त कर सकते हैं। अपने आप को मनाने के लिए आप RESTClient मोज़िला को जोड़ सकते हैं और अपना वॉली अनुरोध भेज सकते हैं और प्रतिक्रिया देख सकते हैं। हेडर में यह आपको 500 आंतरिक सर्वर त्रुटि त्रुटि दिखाता है लेकिन आप शरीर अनुभाग

+0

हां, ठीक है, ممنون –

+0

मैं देख सकता हूं कि यह ब्राउज़र में काम करता है। लेकिन वॉली में कैसे संभालें? –

+0

एक ही समस्या का समाधान समाधान नहीं मिल रहा है। आईओएस – CrazyMind

1

में प्रतिक्रिया देख सकते हैं यहां इस त्रुटि का समाधान है। सबसे पहले आप Reponse वर्ग का विस्तार करने और @Override protected Response parseNetworkResponse(NetworkResponse response) { इस तरह संशोधित करने की आवश्यकता:

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(

और त्रुटि श्रोता में:

@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

पर एक ही सेवा अच्छी तरह से काम करती है क्या यह किसी के लिए काम करता है? – NovusMobile

संबंधित मुद्दे