Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在不使用LinkedMultiValueMap的情况下将请求正文传递给Spring Rest模板_Java_Spring_Httprequest_Resttemplate - Fatal编程技术网

Java 在不使用LinkedMultiValueMap的情况下将请求正文传递给Spring Rest模板

Java 在不使用LinkedMultiValueMap的情况下将请求正文传递给Spring Rest模板,java,spring,httprequest,resttemplate,Java,Spring,Httprequest,Resttemplate,我正在使用Spring Rest模板发出Http PUT请求,到目前为止,我一直使用以下方法传递请求正文: MultiValueMap<String, Object> body = new LinkedMultiValueMap<String, Object>(); body.add("account", testAccount); HttpEntity<?> requestEntity = new HttpE

我正在使用Spring Rest模板发出Http PUT请求,到目前为止,我一直使用以下方法传递请求正文:

        MultiValueMap<String, Object> body = new LinkedMultiValueMap<String, Object>();
        body.add("account", testAccount);

        HttpEntity<?> requestEntity = new HttpEntity<Object>(body, headers);

        ResponseEntity<String> responseEntity;

        try {
            responseEntity = rest.exchange(uri, HttpMethod.PUT, requestEntity, String.class);
        }
        catch (HttpStatusCodeException e) {
            log.error("Http PUT failed with response: " + e.getStatusText());
            return ResponseEntity.status(e.getStatusCode()).body(e.getResponseBodyAsString());
        }

        return responseEntity; 

这是可行的,但我的目标API不希望
account
对象具有数组作为值,并且当前给我一个500内部服务器错误,因此,我的问题是,如何将
'account'
属性的值设为对象而不是数组?例如,我希望请求主体显示为:

{"account":{"account_id":"495"}}
是否有另一种类型的
Map
可以使用,但不接受多个值

如果可能的话,我仍然想使用
exchange
方法


任何关于这方面的帮助都是伟大的!非常感谢

答案实际上只是简单地使用常规的
HashMap
而不是
多值map
。如图所示,
MultiValueMap
案例用于向请求正文中的单个键添加数组。 谢谢你的帮助

{"account":{"account_id":"495"}}