मैं एंड्रॉयड के लिए वसंत का उपयोग कर एक आराम सेवा पर पोस्ट करने के लिए कोशिश कर रहा हूँ वसंत का उपयोग कर वस्तुबाकी पोस्ट एंड्रॉयड
शोकहारा सेवा के साथ इस संरचना
@POST
@Path("/ider")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public SearchOutRO hashTrackInJSON(SearchInRO in);
है (मैं इस पर नया हूँ) (छोटा वस्तु कोड):
public class SearchInRO implements Serializable {
private Double latitud;
private Double longitud;
}
public class SearchOutRO implements Serializable {
private Integer searchId;
}
तो मैं इस (एंड्रॉयड से)
String url = BASE_URL + "ider";
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setContentType(MediaType.APPLICATION_JSON);
MultiValueMap<String, String> body = new LinkedMultiValueMap<String, String>();
body.add("searchInRO[latitud]", String.valueOf(user.getLatitud()));
body.add("searchInRO[longitud]", String.valueOf(user.getLongitud()));
HttpEntity<?> requestEntity = new HttpEntity<Object>(body, requestHeaders);
RestTemplate restTemplate = new RestTemplate();
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(new FormHttpMessageConverter());
messageConverters.add(new StringHttpMessageConverter());
restTemplate.setMessageConverters(messageConverters);
try {
ResponseEntity<SearchOutRO> response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, SearchOutRO.class);
HttpStatus status = response.getStatusCode();
if (status == HttpStatus.CREATED) {
return true;
} else {
return false;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
कोशिश कर रहा हूँ
और यह अपवाद हो रही:
org.springframework.web.client.RestClientException: Could not write request: no suitable HttpMessageConverter found for request type [org.springframework.util.LinkedMultiValueMap] and content type [application/json]
तुम मुझे उनका कहना है कि मैं क्या गलत कर रहा हूँ मदद कर सके (और कैसे बनाने के यह सही)।
मुझे लगता है कि यह "बॉडी" मल्टीवैल्यूमैप हो सकता है।
अग्रिम
धन्यवादसंपादित करें: मैंने कोशिश की क्या @Krisl का सुझाव दिया। मैं सर्वर की ओर से कनेक्ट करने में सफल रहता हूं, लेकिन ऐसा लगता है कि ऑब्जेक्ट सही ढंग से मार्शल नहीं किया गया है।
WARNING: javax.xml.bind.UnmarshalException
- with linked exception:
[javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"latitud"). Expected elements are <{}searchInRO>]
मैं किसी भी विचार की सराहना करता हूं।
आप सर्वर साइड डेटा तक पहुँच है ऑब्जेक्ट्स ('SearchInRO', 'SearchOutRO') क्लाइंट साइड पर? – Perception
हां, दोनों स्थानीय रूप से कार्यान्वित –
आपको क्लाइंट पक्ष पर तब उनका उपयोग करना चाहिए। बहु-मूल्य मानचित्र के बजाय, 'SearchInRO' ऑब्जेक्ट बनाएं, इसे पॉप्युलेट करें, और इसे अपने HttpEntity में संग्रहीत करें। मुझे यह भी नहीं लगता कि आपको 'FormHttpMessageConverter' की आवश्यकता है। – Perception