2015-01-14 4 views
8

एंड्रॉयड पर, मैं शुरू में इस तरह की एक रेट्रोफिट इंटरफ़ेस कार्यान्वित किया। यह retrofit.RetrofitError: End of input at character 0 of के साथ विफलता को ट्रिगर करने का कारण बन रहा था, क्योंकि यह प्रतिक्रिया के साथ User ऑब्जेक्ट की अपेक्षा कर रहा था।रेट्रोफिट, 204 के लिए कॉलबैक कोई सामग्री प्रतिक्रिया नहीं?</p> <pre><code>@DELETE(USER_API_BASE_URL + "/{id}") public void deleteUser(@Path("id") String id, Callback<User> callback); </code></pre> <p>सर्वर की ओर 204 एक सफल विलोपन पर कोई सामग्री:

मैं तो इस तरह यह दुबारा लिखा, User के बजाय Void का उपयोग कर:

@DELETE(USER_API_BASE_URL + "/{id}") 
public void deleteUser(@Path("id") String id, Callback<Void> callback); <-- VOID 

लेकिन मैं कॉलबैक से एक ही त्रुटि हो रही है। इसे ठीक करने का सही तरीका क्या है? धन्यवाद।

+0

कैसे रेट्रोफिट 'User' कर सकते हैं जब वहाँ जवाब में कोई सामग्री है? आप 'उपयोगकर्ता' ऑब्जेक्ट को वापस क्यों चाहते हैं, जब इसे पहले ही हटा दिया गया हो? – mklimek

+0

क्या यह कॉलबैक के साथ काम करता है? इसके अलावा आप रेट्रोफिट का किस संस्करण का उपयोग करते हैं? –

+0

हे वोलोडिमर, यह काम करता है। यह उचित तरीके से महसूस नहीं करता है - कॉलबैक की सफलता विधि का हस्ताक्षर तब सार्वजनिक शून्य सफलता (प्रतिक्रिया प्रतिक्रिया 1, प्रतिक्रिया प्रतिक्रिया) {..} 'जो थोड़ा अजीब दिखता है। – ticofab

उत्तर

17

Retrofit 2.x अब एक ResponseCallback अन्य जवाब में उल्लिखित है। आप Response<Void> प्रकार का उपयोग करना चाहते हैं।

RxJava घोषणा:

@PUT Observable<Response<Void>> foo(); 

मानक घोषणा:

@PUT Call<Response<Void>> bar(); 
+0

लेकिन समस्या यह है कि वेब सेवा कॉल में कोई त्रुटि है, फिर भी यह सफलता ब्लॉक निष्पादित करता है और फेंकने योग्य ब्लॉक – MobileMon

+0

नहीं है, मुझे पुनः प्राप्त करने के लिए अमूर्त वर्ग okhttp3.ResponseBody को क्रमबद्ध नहीं किया जा सकता है 2.3.0 –

+0

@GregEnnis आप गलत प्रकार का उपयोग करके, यह 'retrofit2.Response' –

8

समाधान में जेक व्हार्टन द्वारा समाधान की ओर इशारा किया गया था। ResponseCallback का प्रयोग करें।

संपादित करें: यह प्रतिक्रिया नहीं रह गया है रेट्रोफिट < 2. के लिए मान्य है

+0

अरे दोस्तों, इस उत्तर का लिंक अमान्य था। -_- ||| – codezjx

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