使用RestTemplate发送post请求
2017-01-06 14:34
609 查看
最近使用RestTemplate发送post请求,遇到了很多问题,如转换httpMessage失败,中文乱码等,调了好久才找到下面较为简便的方法:
如果直接使用在postForObject中把对象传入很容易出现no suitable HttpMessageConverter found for request type的错误,建议直接先转成字符串,见jsonObj.otString(),网上有人说设置RestTemplate的 HttpMessageConverter,试了一下要引入各种包。另外要注意中文编码问题,网上有人说 StringHttpMessageConverter默认使用ISO-8859-1,要指定为UTF-8编码,自己尝试没有成功,最后通过指定 contentType的方式解决了。
RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); headers.setContentType(type); headers.add("Accept", MediaType.APPLICATION_JSON.toString()); JSONObject jsonObj = JSONObject.fromObject(params); HttpEntity<String> formEntity = new HttpEntity<String>(jsonObj.toString(), headers); String result = restTemplate.postForObject(url, formEntity, String.class);
如果直接使用在postForObject中把对象传入很容易出现no suitable HttpMessageConverter found for request type的错误,建议直接先转成字符串,见jsonObj.otString(),网上有人说设置RestTemplate的 HttpMessageConverter,试了一下要引入各种包。另外要注意中文编码问题,网上有人说 StringHttpMessageConverter默认使用ISO-8859-1,要指定为UTF-8编码,自己尝试没有成功,最后通过指定 contentType的方式解决了。
相关文章推荐
- 使用 RestTemplate 发送 post 请求传递参数
- 使用RestTemplate发送post请求
- 解决spring3.0.5使用RestTemplate发送post请求响应中文乱码问题
- 使用RestTemplate发送post和delete请求
- 使用RestTemplate发送post请求
- 使用 RestTemplate 发送 post 请求后返回 json 中 ":" 变成 "=" 的解决办法
- RestTemplate 发送 get 请求使用误区 多值为null
- 如何使用火狐下的两款接口测试工具RESTClient和HttpRequester发送post请求
- spring boot RestTemplate 发送 get 请求使用误区
- Spring boot 发送http请求组件RestTemplate使用实例
- java后端发送http请求使用RestTemplate(简单的都无敌了)
- 火狐浏览器使用RESTClient发送post请求方法
- 如何使用火狐下的两款接口测试工具RESTClient和HttpRequester发送post请求
- RestTemplate 发送Post 多个参数请求
- 火狐浏览器使用RESTClient发送post请求方法
- 使用HttpWebRequest发送自定义POST请求
- 客户端delphi使用XML与中间层C#.net通信的例子,客户端用idhttp的post发送请求
- 使用HttpWebRequest发送自定义POST请求
- 使用Java发送GET、POST请求
- java中使用scoket模拟http post请求发送图片或文件