前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中restTemplate携带Header请求

Java中restTemplate携带Header请求

作者头像
代码的路
发布2023-05-24 13:55:56
4620
发布2023-05-24 13:55:56
举报
文章被收录于专栏:代码的路代码的路

RestTemplate是Spring提供的用于发送HTTP请求的客户端工具。

现在我们要在Java中使restTemplate携带Header请求。

创建请求

创建请求头:

代码语言:javascript
复制
Map<String, String> requestBody = new HashMap<>();
requestBody.put("userId", userId);
requestBody.put("userName", userName);

创建请求体:

代码语言:javascript
复制
HttpHeaders requestHeader = new HttpHeaders();
requestHeader.add("cookie", "cookie");
requestHeader.add("userInfo", "{userId:101,userName:userName}");

创建请求方式:

代码语言:javascript
复制
HttpEntity<Map<String, String>> httpEntity = new HttpEntity<>(requestHeader);
RestTemplate restTemplate = new RestTemplate();

POST请求

restTemplate发送POST请求时可以通过如下方法获取ResponseEntity

代码语言:javascript
复制
ResponseEntity responseEntity = restTemplate.postForEntity(url, httpEntity, JSONObject.class);

或用以下方法获取jsonObject

代码语言:javascript
复制
JSONObject jsonObject = restTemplate.postForObject(url, httpEntity, JSONObject.class);

GET请求

GET请求没有相应的方法,只能用exchange方法获取ResponseEntity

代码语言:javascript
复制
ResponseEntity<JSONObject> responseEntity = restTemplate.exchange(url, HttpMethod.GET, httpEntity, JSONObject.class, requestBody);

若出现如下报错:

Not enough variables available to expand

则是因为RestTemplate认为大括号{}为占位符,需要将请求头中的{userId:101,userName:userName}改为{\"userId\":\"101\",\"userName\":\"userName\"习更多编程知识,请关注我的公众号:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 代码的路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建请求
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档