Android使用Empty MultiValueMap发送帖子以休息服务请求

时间:2016-02-21 18:00:59

标签: java android jersey resttemplate

我正在尝试在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
            }
        };

0 个答案:

没有答案