【发布时间】:2013-01-16 07:00:53
【问题描述】:
我正在尝试使用 Spring RestTemplate 发布数据,如下所示:
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
parameters.add("name1", "value1");
parameters.add("name2", "value2");
HttpMessageConverter<String> stringConverter = new StringHttpMessageConverter();
FormHttpMessageConverter formConverter = new FormHttpMessageConverter();
List<HttpMessageConverter<?>> msgConverters = new ArrayList<HttpMessageConverter<?>>();
msgConverters.add(formConverter);
msgConverters.add(stringConverter);
restTemplate.setMessageConverters(msgConverters);
String xml = restTemplate.postForObject(myurl, parameters, String.class);
在服务器部分,我使用一个简单的 servlet 来处理请求,如下所示:
String name1 = request.getParameter("name1");
服务器将 xml 作为字符串返回。
当我在没有转换器的情况下使用 HashMap 而不是 MultiValueMap 时,服务器端的参数为空。但是使用上面的代码后,我得到了错误
Cannot extract response: no Content-Type found
你能不能给我一个简单的例子来实现我想要的。
【问题讨论】:
-
好的,我找到了解决方案。我的问题是由于 Spring 3.0.1 似乎不支持 HttpEntity,我使用 Spring 3.2 并使用 HttpHeaders 和 ContentType MediaType.APPLICATION_FORM_URLENCODED 并将标头包装到 HttpEntity 对象以解决我的问题。
标签: spring resttemplate postdata