使用RestTemplate发送post请求

最近使用RestTemplate发送post请求,遇到了很多问题,如转换httpMessage失败、中文乱码等,调了好久才找到下面较为简便的方法:

复制代码
 1         RestTemplate restTemplate = new RestTemplate();
 2         HttpHeaders headers = new HttpHeaders();
 3         MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
 4         headers.setContentType(type);
 5         headers.add("Accept", MediaType.APPLICATION_JSON.toString());
 6         
 7         JSONObject jsonObj = JSONObject.fromObject(params);
 8         
 9         HttpEntity<String> formEntity = new HttpEntity<String>(jsonObj.toString(), headers);
10 
11         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的方式解决了。

本站的文章多是老王开发工作中问题的记录,一个字一个字敲的,切实可行,可以分享,需要留个原文链接,至少也意思意思吧!
vsalw技术博客 » 使用RestTemplate发送post请求

你想下载这个主题吗?

沟通一下 扯会蛋