使用RestTemplate发送post请求

简介: 使用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的方式解决了。



目录
相关文章
|
5月前
|
JSON 安全 程序员
为什么POST请求会发送两次请求?
为什么POST请求会发送两次请求?
146 0
|
7月前
httprequest- post- get -发送请求
httprequest- post- get -发送请求
45 1
|
8月前
|
JSON API 数据格式
使用RestTemplate发送HTTP请求
使用RestTemplate发送HTTP请求
81 0
|
8月前
|
缓存 安全 API
Post请求和get请求的区别是什么?
Post请求和get请求的区别是什么?
201 2
|
8月前
restTemplate 发送http post请求带有文件流、参数
restTemplate 发送http post请求带有文件流、参数
180 1
|
8月前
|
容器
PostMan发送携带参数Get请求、Post请求及SpringMVC解决Post请求中文乱码问题
PostMan发送携带参数Get请求、Post请求及SpringMVC解决Post请求中文乱码问题
250 0
|
JSON 数据格式
OkHttp3发起POST或GET请求
OkHttp3发起POST或GET请求
504 0
|
网络协议 Python
三、get请求和post请求
三、get请求和post请求
|
安全 前端开发 JavaScript
【GET请求和POST请求区别。】
GET请求和POST请求是HTTP协议中最常见的两种请求方法,它们在客户端向服务器发送请求时有着不同的特点和用途。
121 0
|
XML JSON 安全
get请求和post请求的区别以及常用请求方式
get请求和post请求的区别以及常用请求方式