我正在尝试在POST请求中发送MultiValueMap,我一直在尝试很多方法,我总是在服务器中接收MultiValueMap为null,我有另一个使用AngularJS的客户端,我可以很好地发送params,这是我在Android中的客户端代码:
HttpEntity<Object> objectHttpEntity = new HttpEntity<Object>(map);
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
restTemplate.exchange(url, HttpMethod.POST, objectHttpEntity, String.class);
这是以这种方式填补的:
org.springframework.util.MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
map.add("name", "daniel");
map.add("lastName", "hernandez");
map.add("message", "dummy");
map.add("email", "mail@some.com");
map.add("phone", "4545645465");
我到达服务器,但它正在使用空值读取地图中的值。
这是我的休息:
@POST
@Path("/message/create")
@Produces(MediaType.APPLICATION_JSON)
public Response create(@Context UriInfo uri) {
try {
javax.ws.rs.core.MultivaluedMap<String, String> parameters = uri.getQueryParameters();
.....
这在angularjs中运作良好
var req = {
method: 'POST',
url: 'http://someip:port/wsapp1-1.0/service/contactMessage/message/create',
params: {
name: scope.contactus.name,
lastName: scope.contactus.lastName,
message: scope.contactus.message,
email: scope.contactus.email,
phone: scope.contactus.phone
}
};