2016-01-29 5 views
9
@POST("api/login") 
Call<ApiResponse> loginUser(@Body String user); 

में रेट्रोफिट 2 की 'बॉडी' पैरामीटर में स्ट्रिंग पारित करने के लिए यहाँ स्ट्रिंग वास्तव में एक JSONstring अर्थातकैसे एंड्रॉयड

{"email":"[email protected]","password":"test"} 

सके यह पता लगाने क्या यह गलत है। या तो स्ट्रिंग इसे फिर से जेसन में परिवर्तित कर दिया। कृपया सुझाव दें ..

यही वह है जो मैं चित्र में दिखाए गए अनुसार मेरे अनुरोध पर करना चाहता हूं।

enter image description here

+0

क्या जेसन प्रतिक्रिया है? ApiResponse की सामग्री क्या है? – Blackbelt

+0

कोई प्रतिक्रिया नहीं है। प्रतिक्रिया प्राप्त करने के लिए यह डेटा @body को भेजा जाना है। –

+0

मुझे यकीन नहीं है कि क्या आप जेएसओएन भेज सकते हैं। मुझे लगता है कि यह फिर से परिवर्तित हो जाएगा। कृपया मेरा जवाब देखें जिस तरह से मैं इसका उपयोग कर रहा हूं। – Rohit5k2

उत्तर

15

वस्तु में अपने डेटा कन्वर्ट

public class Credentials 
{ 
    public String email; 
    public String password; 
} 

आपत्ति उठाने

Credentials loginCredentials = new Credentials(); 
loginCredentials.email = "[email protected]"; 
loginCredentials.password = "password"; 

अपने API कॉल डेटा सेट

@POST("api/login") 
Call<ApiResponse> loginUser(@Body Credentials credentials); 
+1

मैं जेसन को शरीर को भेजने के लिए 'डेटा मॉडल' वर्ग का उपयोग नहीं करना चाहता हूं। मैं वैकल्पिक खोज रहा हूँ। –

+0

@RanjanaDangol ठीक है तो इसे 'जीएसओएन' का उपयोग करके 'JSON' बनाओ और इसे' स्ट्रिंग' –

+1

@RanjanaDangol में सहेजा गया: आपके पोस्ट में उल्लेख नहीं किया गया था। कोई बात नहीं। : डी – Rohit5k2

8
@POST("api/login") 
Call<ApiResponse> loginUser(@Body HashMap<String, String> user); 

हम इस तरह हस्मैप का उपयोग कर सकते हैं।