前言:
踩坑了,被坑无数次,依旧保持初心,继续被坑。
事情是这样事的,fegin请求时要在header里加个数据,我咔咔百度,一顿加。先是没有日志,然后找fegin开header的日志,然后有日志了。但是无论怎么搞,header日志就是没变化,找到源包打个断点,好家伙,日志输出没输出,老早就加进去了。坑人的框架
背景:
fegin请求时要在header里加个数据
要点:
1.fegin 开启header日志输出
2.fegin请求加header信息
实现:
1.fegin 开启header日志输出
feign.client.config.default.logger-level
配置这个配置项,枚举共有4个。(我们默认了BASIC,抓狂)
/**
* Controls the level of logging.
*/
public enum Level {
/**
* No logging.
*/
NONE,
/**
* Log only the request method and URL and the response status code and execution time.
*/
BASIC,
/**
* Log the basic information along with request and response headers.
*/
HEADERS,
/**
* Log the headers, body, and metadata for both requests and responses.
*/
FULL
}
2.fegin请求加header信息
就别用什么Feign的@Header了,根本不好使。
直接在你
@PostMapping,@GetMapping,@RequestMapping中加header就行了。
key,value的写法
@PostMapping(value = "/info/send",headers = "source=token")
@PostMapping(value = "/info/send",headers = "source=${app.id}")
第一个是直接写死值,第二条是获取配置信息的值
传入值的写法
@PostMapping(value = "/info/send")
MessageResp sendMessage(@RequestBody MessageReq messageReq,@RequestHeader("aaa") String aaa);
添加@RequestHeader,在入参里传入即可,这也是key-value的形式,key是配置在@RequestHeader中的aaa.
注:看源码是个好习惯,我总是学不会,总是遇到问题的时候瞎搞,曲线救国