1.在使用postForObject发送请求的时候 如果需要传递参数
请大家使用
MultiValueMap<String, String> paramMap = new LinkedMultiValueMap<String, String>();
String url = "http://localhost:8080/customerVisitController/test.do";
FilterCondition fc = new FilterCondition();
fc.setUserId("111");
fc.setPageNo(22);
MultiValueMap<String, Object> map = new LinkedMultiValueMap<String,Object>();
map.add("key",new Gson().toJson(fc));
String s = new RestTemplate().postForObject(url, map, String.class);
@RequestMapping(value = "/test")
@ResponseBody
public Response test(HttpServletRequest request){
System.out.println(request.getParameter("key"));
String key = request.getParameter("key");
FilterCondition filterCondition = new Gson().fromJson(key, FilterCondition.class);
return new Response().success("aaa");
1.在使用postForObject发送请求的时候 如果需要传递参数 请大家使用// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递MultiValueMap&lt;String, String&gt; paramMap = new LinkedMultiValueMap&lt;String, String&gt;();客户端String url = "ht...
import com.alibaba.fastjson.JSONObject;
import com.itmuch.cloud.study.user.entity.User;
import com.itmuch.cloud.study.user.util.RestTemplateUtil;
import org.junit.Test;
import org.springframework.htt...
#GET携带Body参数发送请求 #SpringBoot整合Feign #SpringBoot整合RestTemplate #RestTemplate拓展Get请求携带Body参数
RestTemplate的请求参数传递问题
使用RestTemplate传递参数的时候,RestTemplate默认传递的是json格式,将参数放在请求体中,这就导致使用@RequestParam接收不到参数.下面测试集中参数传递的方式
1.先重现错误,使用RestTemplate传递json,同时使用@RequestParam接收参数.
2.更改RestTemplate参数传递方...
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory factory){
return new RestTemplate(factory);
@Bean
点击报错信息,定位到FormHttpMessageConverter.java类里面我们发现MultiValueMap参数传的是String类型 ,怪不得传Integer类型会类型转换错误
查看哪......
springboot 整合 RestTemplate 与 使用方法 请参考我的另一篇博客:springboot 2.0 整合 RestTemplate 与使用教程
RestTemplate 的 postForObject 方法有四个参数
String url => 顾名思义 这个参数是请求的url路径
Object request => 请求的body 这个参数需要再contro...
最近使用Spring 的 RestTemplate 工具类请求接口的时候发现参数传递的一个坑,也就是当我们把参数封装在Map里面的时候,Map 的类型选择。 使用RestTemplate post请求的时候主要可以通过三种方式实现
1、调用postForObject方法 2、使用postForEntity方法 3、调用exchange方法
postForObject和...
1.我们通过 http://start.spring.io/ 初始化一个简单的spring boot工程,取名
resttemplate, 由于只研究
RestTemplate的特性,故仅添加web即可,如图所示,另外本项目额外添加了alibaba.fastjson这个jar包,你需要在pom.xml添加依赖<!--阿里 FastJson依赖-->
<dependency>
RestTemplate是Spring框架提供的一个HTTP客户端工具,可以用于发送HTTP请求。其中,post请求是一种常见的请求方式,可以用于向服务器提交数据。使用RestTemplate发送post请求的步骤如下:
1. 创建RestTemplate对象。
2. 创建请求头和请求体。
3. 发送请求并获取响应。
4. 处理响应数据。
具体实现可以参考以下代码:
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
JSONObject requestBody = new JSONObject();
requestBody.put("name", "张三");
requestBody.put("age", 20);
HttpEntity<String> requestEntity = new HttpEntity<>(requestBody.toJSONString(), headers);
String url = "http://localhost:808/user";
ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, requestEntity, String.class);
String responseBody = responseEntity.getBody();
其中,第一行代码创建了一个RestTemplate对象;第二行代码创建了请求头,并设置Content-Type为application/json;第三行代码创建了请求体,使用JSONObject封装了请求参数;第四行代码创建了HttpEntity对象,将请求头和请求体封装在一起;第五行代码设置了请求的URL;第六行代码发送post请求,并获取响应;第七行代码从响应中获取响应体。