2015-10-05 8 views
5

पर मैं नेटवर्क अनुरोध करने के लिए अपने एंड्रॉइड ऐप में ओखट्ट रेट्रोफिट का उपयोग कर रहा हूं।

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: अनुरोधों में से एक पर मैं इस त्रुटि मिलती है उम्मीद BEGIN_OBJECT लेकिन लाइन 1 स्तंभ 1 पथ $

मैं में एक 201 प्रतिक्रिया देखने पर STRING था लॉग्स लेकिन रेट्रोफिट इस त्रुटि को फेंक देता है। नीचे मेरा कोड है।

signup(signupParams, new Callback<Member>() { 
      @Override 
      public void success(Member member, Response response) { 
       if (member != null) { 
        UserAccount userAccount = new UserAccount(member); 
        userAccount.save(); 
      } 

      @Override 
      public void failure(RetrofitError re) { 
       BusProvider.post(new SignupFailedEvent(re, email)); 
      } 
     }); 

signupParams मूल्य है -

{"emailAddress":"[email protected]","password":"tester123","userSource":"APH"} 

मैं jsonLint के साथ इस json परीक्षण किया है और यह एक वैध json है। और यह मेरा सदस्य वर्ग है जो आदर्श रूप से प्रतिक्रिया होना चाहिए। प्रतिक्रिया की

public class Member { 
    public String emailAddress; 
    public String token; 
    public long id; 
    public String firstName; 
    public String lastName; 
} 

उदाहरण कुछ इस तरह होना चाहिए:

{ 
    "emailAddress": "[email protected]", 
    "id": 1437811, 
    "token": "sdhshdghsdhhsdbcjhbsjdhc", 
    "firstName": "John", 
    "lastName": "Smith" 
} 
+1

क्या आपके पास प्रतिक्रिया का उदाहरण JSON है? यह सेवा से प्रतिक्रिया deserialising के साथ एक मुद्दा की तरह दिखता है। –

+0

@ एंड्रयूब्रीन मैंने प्रतिक्रिया का एक उदाहरण जोड़ा। – user3773337

+2

क्या आप पुष्टि कर सकते हैं कि आपको जो प्रतिक्रिया मिल रही है - लॉगिंग चालू करें। अपने रेट्रोफिट सेटअप कोड में वर्बोज़ देखें और देखें कि अनुरोध और प्रतिक्रिया सीधे कैसा दिखती है। –

उत्तर

1

स्रोत कोड है कि आप सदस्य वर्ग के लिए तैनात सही है, तो आप प्रतिक्रिया JSON आप आपको लगता है कि नहीं मिल रहा है कर रहे हैं।

त्रुटि संदेश का अर्थ है कि JSON पार्सर को एक स्ट्रिंग मिली जहां इसे एक जटिल वस्तु की उम्मीद थी।

चूंकि आपके पास सदस्य वर्ग में कोई जटिल वस्तुएं नहीं हैं, इसलिए परिणाम शायद वैध JSON नहीं है (यह एक प्रारंभिक घुंघराले ब्रैकेट के साथ शुरू नहीं होता है)।

या तो टिप्पणी में से किसी एक में सुझाव के रूप में रेट्रोफिट में वर्बोज़ लॉगिंग चालू करने या "पोस्टमैन" जैसे टूल का उपयोग करके एपीआई को उसी डेटा को पोस्ट करने का प्रयास करें, और देखें कि वास्तव में परिणाम क्या है।

+1

मैंने वर्बोज़ लॉगिंग चालू कर दी और मुझे लगता है कि मेरी प्रतिक्रिया इस तरह कुछ एन्कोड किया गया है: N 0 ߥ wd P , और j @QT \ "# 7GDS]! ivRR ݣ 4 SͷTpĝP> वीपी (एजी /% =/टी \ T6O & Y $ - z5Lm56,: कश्मीर * एम] जेएम + TƐP᮰pŔ4 \ O9 & * सी? ~ जी + 'वी ~ <= L , 6S 5 S if F { O a3 Ǯ "क्या किसी को पता है कि इस तरह की प्रतिक्रिया क्यों है। अन्य सभी एपीआई कॉल के लिए, मुझे वैध JSON दिखाई देता है लॉगकैट में प्रतिक्रिया। – user3773337

+0

हाँ! यह समस्या होगी। एकमात्र व्यक्ति जो "क्यों" जानता है एपीआई का मालिक है। – GreyBeardedGeek

+0

क्या आप पोस्टमैन जैसे टूल का उपयोग करके इसे सत्यापित कर सकते हैं जैसा उपर्युक्त उत्तर यह देखने के लिए कहता है कि क्या यह टी प्राप्त करता है वह डेटा अपेक्षित है? यह डेटा ऐसा लगता है कि यह संभवतः फ़ाइल डाउनलोड करने का प्रयास कर रहा है। –

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