0
我試圖用Spring發佈表單數據。該表格數據是XML
格式。但每次我嘗試發佈時,我都會收到415錯誤。發佈到Spring中的XML媒體類型表單
public void setFormData(String name, Integer age){
String url = "https://my.example.com/path/";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_XML);
Form form = new Form();
form.set("name", name);
form.set("age", age);
HttpEntity<Object> request = new HttpEntity<Object>(form, headers);
RestTemplate restTemplate = new RestTemplate();
restTemplate.put(url, request);
}
由於上述不工作,我去了,實現了這個:
public void setFormData(String name, Integer age){
String url = "https://my.example.com/";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_XML);
MultiValueMap<String, Object> params= new LinkedMultiValueMap<String, Object>();
params.add("name", name);
params.add("age", age);
HttpEntity<MultiValueMap<String, Object>> request = new HttpEntity<MultiValueMap<String, Object>>(map, headers);
RestTemplate restTemplate = new RestTemplate();
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
Jaxb2RootElementHttpMessageConverter jaxbMessageConverter = new Jaxb2RootElementHttpMessageConverter();
List<MediaType> mediaTypes = new ArrayList<MediaType>();
mediaTypes.add(MediaType.APPLICATION_XML);
jaxbMessageConverter.setSupportedMediaTypes(mediaTypes);
messageConverters.add(jaxbMessageConverter);
restTemplate.setMessageConverters(messageConverters);
}
XML接受請求:
<resource path="/path">
<method name="POST">
<request>
<representation mediaType="application/x-www-form-urlencoded">
<param name="name" style="query" type="xs:string">
<param name="age" style="query" type="xs:int">
</representation>
</request>
</method>
</resource>
但我還是得到了415錯誤。我也嘗試在Java代碼中將MediaType設置爲APPLICATION_FORM_URLENCODED
,但我得到了415錯誤。如何使用Spring發佈到XML表單?任何幫助,將不勝感激。
謝謝你好多,它的工作原理! –