java – 使用Spring RestTemplate用对象POST params
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 使用Spring RestTemplate用对象POST params,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1580字,纯文字阅读大概需要3分钟。
内容图文
![java – 使用Spring RestTemplate用对象POST params](/upload/InfoBanner/zyjiaocheng/786/7b336e0f6b334082ac342692df328d25.jpg)
我正在尝试使用Spring的RestTemplate功能发送POST请求,但是在发送对象时遇到问题.这是我用来发送请求的代码:
RestTemplate rt = new RestTemplate();
MultiValueMap<String,Object> parameters = new LinkedMultiValueMap<String,Object>();
parameters.add("username", usernameObj);
parameters.add("password", passwordObj);
MyReturnObj ret = rt.postForObject(endpoint, parameters, MyRequestObj.class);
我也有一个日志拦截器,所以我可以调试输入参数,它们几乎是正确的!目前,usernameObj和passwordObj参数如下所示:
{"username":[{"testuser"}],"password":[{"testpassword"}]}
我希望它们看起来像是以下内容:
username={"testuser"},password={"testpassword"}
假设usernameObj和passwordObj是已编组为JSON的Java对象.
我究竟做错了什么?
解决方法:
好吧,所以我最终搞清楚了这一点.我最后只是写了一个marshaller / unmarshaller所以我可以在更细粒度的水平上处理它.这是我的解决方案:
RestTemplate rt = new RestTemplate();
// Create a multimap to hold the named parameters
MultiValueMap<String,String> parameters = new LinkedMultiValueMap<String,String>();
parameters.add("username", marshalRequest(usernameObj));
parameters.add("password", marshalRequest(passwordObj));
// Create the http entity for the request
HttpEntity<MultiValueMap<String,String>> entity =
new HttpEntity<MultiValueMap<String, String>>(parameters, headers);
// Get the response as a string
String response = rt.postForObject(endpoint, entity, String.class);
// Unmarshal the response back to the expected object
MyReturnObj obj = (MyReturnObj) unmarshalResponse(response);
这个解决方案让我可以控制对象的编组/解组,并简单地发布字符串,而不是让Spring直接处理对象.它帮助极大!
内容总结
以上是互联网集市为您收集整理的java – 使用Spring RestTemplate用对象POST params全部内容,希望文章能够帮你解决java – 使用Spring RestTemplate用对象POST params所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。