2013-08-20 11 views
10

वॉली सर्वर से 404 प्रतिक्रिया वापस लौटाई जाने पर एक त्रुटि देता है भले ही उस 404 प्रतिक्रिया में जेसन आधारित त्रुटि कोड हों। यह 404 प्रतिक्रिया को पार्स नहीं करता है जिसमें जेसन {कोड: संसाधन नॉटफाउंड, msgstr "message_index}वॉली नहीं पार्सिंग 404 प्रतिक्रिया

क्या वॉली को 404 संदेश में JSON को संसाधित करने के लिए वैसे भी है? जिस सेवा को मैं एकीकृत कर रहा हूं वह 404 रुपये देता है जब संसाधन नहीं मिल सकता है।

उत्तर

34

यदि आपको 404 प्रतिक्रिया मिलती है तो इसे आपके द्वारा सेट किए गए त्रुटि श्रोता में मिलना चाहिए। आपको त्रुटि श्रोता में वॉलीएरर ऑब्जेक्ट मिलता है। आप इस ऑब्जेक्ट से नेटवर्क प्रतिक्रिया प्राप्त कर सकते हैं और फिर प्रतिक्रिया निकाय से डेटा प्राप्त कर सकते हैं। इसे एक चार सरणी के रूप में दिया जाता है ताकि आपको इसे किसी अन्य चीज़ में परिवर्तित करने की आवश्यकता हो।

नीचे स्निपेट एक साधारण अनुरोध है जो ऐसा करता है, आपको अपना यूआरएल डालना होगा।

StringRequest request = new StringRequest(Request.Method.GET, "yourURL", new Response.Listener<String>() { 
     @Override 
     public void onResponse(String s) { 
      //Do whatever 
     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError volleyError) { 
      try { 
       String responseBody = new String(volleyError.networkResponse.data, "utf-8"); 
       JSONObject jsonObject = new JSONObject(responseBody); 
      } catch (JSONException e) { 
       //Handle a malformed json response 
      } catch (UnsupportedEncodingException error){ 

      } 
     } 
    } 
    ); 
1

मैं इसे तब से पोस्ट कर रहा हूं, मैंने अपना एक दिन इस पर रखा है और नहीं चाहता कि कोई भी इसे संघर्ष करे।

उत्तर: किसी शारीरिक जोड़ना चाहते हैं/पोस्ट कॉल करने के लिए शीर्ष लेख तो नीचे

@Override 
       public HashMap<String, String> getHeaders() throws AuthFailureError { 
        HashMap<String, String> params = new HashMap<>(); 
        params.put("apikey", Constants.apiKey); 
        params.put("env", Constants.enviroment); 
        params.put("Content-Type", "application/json"); 
        return params; 
       } 

       @Override 
       public byte[] getBody() throws AuthFailureError { 
        return gson.toJson(user).getBytes(); 
       } 

कोड जोड़ कहाँ उपयोगकर्ता वस्तु आप शरीर को पारित कर सकते हैं।

हैप्पी कोडिंग :)

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