@FeignClient 情况下header的传递方法,RestTemplate情况下Header传递方法
今天因为要调用另一个服务,因为我们用的是SpringCloud框架,所以通过Fegin调用,正好另一方服务有权限校验,需要传递token和设备ID,这两个参数都需要放到Header中,
用 @RequestHeader 这个注解实现,可以看到下面两个服务的代码, 我的是三个参数,另一方服务是一个参数,实际上另一方服务接口方法所在的类上有个@IamPermissions注解,就是用来拦截用的,所以虽然参数个数不一致,但是@RequestHeader注解只是在Header里,我刚开始还挺迷惑的,事实上这样是可行的,一个是放在body里,一个是header里。
我的服务的代码:
@FeignClient("xxx-xxx-xxx")
public interface CompensationOrderService {
/**
* 下单
* @param form
* @return
*/
@PostMapping(value = "/xxx-xxx-xxx/v1-0/xxx/xxxx")
@ResponseBody
Result addOrders(@Valid @RequestBody OrderForm form,
@RequestHeader(value = "X-CHJ-Token")String token,
@RequestHeader(value = "X-CHJ-Deviceid")String deviceid);
另一方服务接口代码:
@ApiOperation("下订单")
@PostMapping("/orders")
@ApiResponses({
@ApiResponse(code = MusicCode.MUSIC_VIP_PRODUCT_NOT_EXIST_CODE, message = MusicCode.MUSIC_VIP_PRODUCT_NOT_EXIST_DESC),
@ApiResponse(code = MusicCode.MUSIC_VIP_ORDER_CODE_IS_REPEAT_CODE, message = MusicCode.MUSIC_VIP_ORDER_CODE_IS_REPEAT_DESC)}
)
public Result<String> addOrders(@Valid @RequestBody OrderForm form) {
另一个是使用注入RestTemplate ,创建HttpHeaders 对象, 写入header信息, 调用 postForEntity即可
@Service
@AllArgsConstructor
public class DemoService { @Autowired
private RestTemplate restTemplate; 中间代码省略。。。。。。。。。。。 public SendVo sendMessage(){ HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
headers.set("Authorization",send_token);
headers.set("Accept","application/json"); Map<String,Object> map = new HashMap<String, Object>(2); Map<String, Object> mapJson = new HashMap<String, Object>(7);
mapJson.put("type","oa");
mapJson.put("title","title,钉钉推送消息demo测试完成,哈哈哈");
mapJson.put("content",",钉钉推送消息demo测试完成,content-哈哈哈");
mapJson.put("link","https://www.lixiang.com");
mapJson.put("userid","dongpengju|chenwei");
mapJson.put("mobile","13522396988");
mapJson.put("need_sso",true);
mapJson.put("in_dingding",true); map.put("message",Arrays.asList(mapJson));
map.put("source","umu"); HttpEntity httpEntity = new HttpEntity(map,headers); ResponseEntity<SendVo> postForEntity = this.restTemplate.postForEntity(send_url,httpEntity, SendVo.class);
return postForEntity.getBody();
} }
@FeignClient 情况下header的传递方法,RestTemplate情况下Header传递方法的更多相关文章
- UIView的clipsToBounds属性,layoutSubViews及触摸事件传递(默认情况下)总结
一.UIView的clipsToBounds属性 * 默认情况下,超出父控件尺寸范围的子控件还是可见的 * 如果设置父控件的clipsToBounds=YES,就会裁剪掉超出父控件尺寸范围内的子控件, ...
- Linux下多网卡同网段多IP网络分流设定方法
Linux下多网卡同网段多IP网络分流设定方法 -- :: 标签:Linux下多网卡同网段多IP网络分流设定方法 当服务器需要较高的网络流量时,在其它资源不造成瓶颈的情况下无疑会用到多网卡. 第1选项 ...
- Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法
Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法 昨天在开发的时候遇到个小问题,就是如何将Grid的内容与Form一起发送到服务器端.默认情况下,表单(F ...
- IE下实现类似CSS3 text-shadow文字阴影的几种方法
IE下实现类似CSS3 text-shadow文字阴影的几种方法 一.开始的擦边话 为了测试IE9浏览器,下午晃晃荡荡把系统换成window7的了.果然,正如网上所传言的一样,IE9浏览器确实不支持C ...
- C#传递参数到线程的n个方法
[转]http://kb.cnblogs.com/a/888688/ 本片文章的议题是有关于传递参数到线程的几种方法. 首先我们要知道什么是线程,什么时候要用到线程,如何去使用线程,如何更好的利用线程 ...
- Linux下将UTF8编码批量转换成GB2312编码的方法
Linux下将UTF8编码批量转换成GB2312编码的方法 在sqlplus中导入UTF8编码的sql脚本就会出现乱码错误,这时就需要将UTF8编码转换成GB2312编码,下面为大家介绍下在Linux ...
- 64位系统下8G内存仅使用到4G问题的解决方法
笔记本:联想E46G 当前bios版本:25CN32WW 内存:DDR3 133 4G × 2 问题:bios信息显示8G,win7和ubuntu 在64位下使用情况仅4G 准备工作1:bios版本和 ...
- mysql主从模式下在主库上的某些操作不记录日志的方法
mysql主从模式下在主库上的某些操作不记录日志的方法 需求场景: 在主库上的需要删除某个用户,而这个用户在从库上不存在(我在接手一个业务的时候,就遇到主从架构用户授权不一致的情况,主库比较全,而从库 ...
- 解决Ubuntu14.04 下 E: Encountered a section with no Package: header 问题
参考: ubuntu-E:Encountered a section with no Package: header的解决办法 解决Ubuntu14.04 下 E: Encountered a sec ...
- Qunar机票技术部就有一个全年很关键的一个指标:搜索缓存命中率,当时已经做到了>99.7%。再往后,每提高0.1%,优化难度成指数级增长了。哪怕是千分之一,也直接影响用户体验,影响每天上万张机票的销售额。 在高并发场景下,提供了保证线程安全的对象、方法。比如经典的ConcurrentHashMap,它比起HashMap,有更小粒度的锁,并发读写性能更好。线程安全的StringBuilder取代S
Qunar机票技术部就有一个全年很关键的一个指标:搜索缓存命中率,当时已经做到了>99.7%.再往后,每提高0.1%,优化难度成指数级增长了.哪怕是千分之一,也直接影响用户体验,影响每天上万张机 ...
随机推荐
- 洛谷P1854 花店橱窗布置
题目 DP,直接递推比记忆化搜索简单. 定义状态\(dp[i][j]\)为前i行最后一个选择第i行第j个数所得到最大值. 易得状态转移方程 \(dp[i][j]=max(dp[i-1][k]+a[i] ...
- 什么是 FOUC(无样式内容闪烁)?你如何来避免 FOUC?
css引入了@import 或者存在多个style标签以及css文件在页面底部 使得css文件加载在html之后导致页面闪烁.花屏 用link加载css文件,放在head标签里面
- fluent meshing建立周期性网格
原视频下载地址:https://pan.baidu.com/s/1pKUXKgz 密码: 6pwh
- Dependency Parsing
句子的依赖结构表现在哪些单词依赖哪些单词.单词之间的这种关系及可以表示为优先级之间的关系等. Dependency Parsing 通常情况下,对于一个输入句子:\(S=w_{0} w_{1} \do ...
- 网络营销CPA、CPS、CPM、CPT、CPC 是什么
网络营销之所以越来越受到重视一个主要的原因就是因为“精准”.相比较传统媒体的陈旧广告形式,网络营销能为广告主带来更为确切的效果与回报,更有传统媒体所没有的即时互动性.很多企业借助于精准的网络营销成为人 ...
- presto 日期函数和操作
https://prestodb.github.io/docs/current/functions/datetime.html date '2012-08-08' + interval '2' day ...
- GridLayout: GridLayout中Spec属性
如果想要让GridLayout中的子元素能够平均分配,就需要用到 android:layout_columnWeight="1" android:layout_rowWeight= ...
- 2018 python获取动态User-Agent
from fake_useragent import UserAgent ua = UserAgent() headers = {'User-Agent': ua.random} print(ua.r ...
- db2常用操作命令
1. 打开命令行窗口 #db2cmd 2. 打开控制中心 # db2cmd db2cc 3. 打开命令编辑器 db2cmd db2ce =====操作数据库命令===== 4. 启动数据库实例 #db ...
- 查看 redis 请求日志
转: 查看 redis 请求日志 2019-05-29 15:34:41 打卤 阅读数 1980更多 分类专栏: other 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转 ...