我试图用Spring发布表单数据。该表单数据为XML格式。但是每次我尝试发帖时,我都会得到415个错误。
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错误。我还尝试在MediaType代码中将APPLICATION_FORM_URLENCODED设置为APPLICATION_FORM_URLENCODED,但得到了415错误。如何使用Spring发布到XML表单?任何帮助都将不胜感激。
发布于 2017-07-06 21:38:50
ContentType更改为APPLICATION_FORM_URLENCODED。干扰Http消息转换器的第二大块代码是无用的。我不确定Form是什么,您正在填充- MultiValueMap也应该工作。postForEntity还是postForObject都应该这样做。https://stackoverflow.com/questions/44958974
复制相似问题