2012-08-30 13 views
7

मेरे पास एक आराम एपीआई यूआरएल है और शेष क्लाइंट (उपयोगकर्ता नाम, पासवर्ड, अन्य पैरामीटर) के साथ बाकी क्लाइंट (restclient-ui-2.4-jar-with-dependencies) के माध्यम से POST अनुरोध के रूप में सबमिट किया गया है और यह बिना किसी समस्या के ठीक काम करता है ।बॉडी पैरामीटर के साथ RestTemplate पोस्ट अनुरोध पर मदद चाहिए?

पूर्व:

यूआरएल: https://test.com/cgi-bin/testing/api बॉडी: उपयोगकर्ता नाम = testuser & पासवर्ड = pass123 & आईडी = 13002 & नाम = राजू

ही ठीक से काम नहीं कर जब मैं वसंत RestTemplate postForObject इस्तेमाल किया (यूआरएल, वर्माप, कर्मचारी.क्लास) विधि।

क्या कोई मुझे एक साधारण उदाहरण के साथ मदद कर सकता है जहां अनुरोध एक यूआरएल है, शरीर के पैरामीटर के साथ और प्रतिक्रिया एक्सएमएल है जो कक्षा के साथ मैप की जाती है?

नमूना कोड:

MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>(); 
    map.add("username", "test"); 
    map.add("password", "test123"); 
    map.add("id", "1234"); 
    MarshallingHttpMessageConverter mc = new MarshallingHttpMessageConverter(); 
    mc.setMarshaller(new Jaxb2Marshaller()); 
    mc.setUnmarshaller(new Jaxb2Marshaller()); 
    list.add(marshallingHttpMessageConverter); 
    emediateRestTemplate.setMessageConverters(list); 
    Employee employee = (Employee) restTemplate.postForObject(url, map, Employee.class); 

अग्रिम धन्यवाद, Kathir

+0

से परिवर्तित करने की आवश्यकता है, क्या आप अपना कोड दिखा सकते हैं जो काम नहीं कर रहा है? –

+0

restTemplate.postForObject (url, पैरामीटर मैप, कर्मचारी.क्लास); । क्या आप कृपया मुझे पोस्टफॉर ऑब्जेक्ट बनाम पोस्टफॉर एक्सचेंज के बीच अंतर बता सकते हैं? – Kathir

+0

आपको कोड के साथ प्रश्न अपडेट करना चाहिए, इसे टिप्पणियों में शामिल नहीं करना चाहिए। साथ ही, कृपया कोड की एक पंक्ति से अधिक दिखाएं, प्रासंगिक सेटअप भी दिखाएं। अंत में, प्रत्येक विधि क्या करता है इसके बारे में स्प्रिंग की साइट पर दस्तावेज़ीकरण की एक संपत्ति है। शायद आप पहले उस पर एक नज़र रखना चाहते हैं। –

उत्तर

13

ऊपर कन्वर्टर्स उदा: "MarshallingHttpMessageConverter" आवश्यकता नहीं है।

MultiValueMap<String, String> parametersMap = new LinkedMultiValueMap<String, String>(); 
parametersMap.add("username", "test"); 
parametersMap.add("password", "test123"); 
parametersMap.add("id", "1234"); 

पोस्ट के लिए:

restTemplate.postForObject(url, parametersMap, Employee.class); 

यूआरएल है: स्ट्रिंग - बाकी एपीआई यूआरएल parametersMap - MultiValueMap कर्मचारी - वस्तु जो JSON उत्तर

प्राप्त के लिए से परिवर्तित करने की आवश्यकता है:

restTemplate.getForObject(url, class object, variablesMap); 

यूआरएल है: स्ट्रिंग - आराम एपी मैं यूआरएल वैरिएबल मैप - मानचित्र क्लास ऑब्जेक्ट - ऑब्जेक्ट जिसे JSON प्रतिक्रिया

+0

अनुरोध की प्रतिक्रिया कैसे प्राप्त करें? – gstackoverflow