当前位置: 首页 > article >正文

【分享】resttemplate exchange 使用示例

接口开发中的 RestTemplate 传参问题
RestTemplate
在使用 RestTemplate时,通过map传参,遇到传不了参的问题

对于get请求,必须在请求的url中添加?a={a},参数为对应的map的key
RestTemplate restTemplate = new RestTemplate();
String url = “https://restapi.amap.com/v3/weather/weatherInfo?key={key}&city={city}”;
Map map = new HashMap();
map.put(“key”,“4d6ab733dcfed0e82806b9a97ff602ff”);
map.put(“city”,“330100”);

	JSONObject forObject = restTemplate.getForObject(url, JSONObject.class, map);

对于post请求
1、调用postForObject方法 2、使用postForEntity方法 3、调用exchange方法
postForObject和postForEntity方法的区别主要在于可以在postForEntity方法中设置header的属性,当需要指定header的属性值的时候,使用postForEntity方法。exchange方法和postForEntity类似,但是更灵活,exchange还可以调用get、put、delete请求。使用这三种方法调用post请求传递参数,Map不能定义为以下两种类型(url使用占位符进行参数传递时除外)
Map<String, Object> paramMap = new HashMap<String, Object>();
Map<String, Object> paramMap = new LinkedHashMap<String, Object>();
使用MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<String, Object>();可以实现传参

RestTemplate restTemplate = new RestTemplate();
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<String, Object>();
paramMap.add(“token”,token);
String s5 = restTemplate.postForObject(url, paramMap, String.class);
```


http://www.kler.cn/a/13567.html

相关文章:

  • 软件测试能干多久?测试员能干到多大年龄?
  • 倾斜摄影三维模型、激光点云、正射影像、数字高程模型如何实现在线浏览?
  • 【Cartopy基础入门】如何更好的确定边界显示
  • 【安卓源码】Binder机制1-Servicemanager 进程的启动和defaultServiceManager
  • 部署YUM仓库
  • C/C++编译器链接优化技术:链接优化是在编译器和链接器之间进行的优化
  • 函数栈帧的创建和销毁
  • JavaSE05|数组的定义与使用
  • Spring5学习总结(三)JdbcTemplate实现数据库增删改查操作JdbcTemplate实现批量增删改操作
  • SAPJNet:小样本多序列MRI诊断的序列自适应原型联合网络
  • RB-PEG-MAL,罗丹明-聚乙二醇-马来酰亚胺;Rhodamine PEG Maleimide;RB-PEG2000-MAL
  • SpringBoot中使用redis事务
  • User Diverse Preference Modeling by Multimodal Attentive Metric Learning
  • Cmake使用
  • ChatGPT已死?AutoGPT太强?
  • 学术领域-英文
  • MIMO-OFDM系统中信道估计的快速谐波搜索技术(Matlab代码实现)
  • Python数据结构与算法-RAS算法(p96)
  • Mysql列的类型定义(日期和时间类型)
  • 【LeetCode】102.二叉树的层序遍历