feign远程调用问题

1.问题描述:feign远程调用,需要给调用方传递header中的参数

处理:调用方法的传参中传递header的参数,并加注解 @RequestHeader

@PostMapping("/not-auth/ssoLogin/getAppTokenBySso")
RestfulEntityBySummit<SsoLoginResponse> ssoLoginAPP(@RequestBody EncryptedStringReq encryptedString,@RequestHeader(name = "mac-address",required = true) String macAddress);

参考链接:https://blog.csdn.net/lidai352710967/article/details/88680173?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.vipsorttest&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.vipsorttest

2.问题描述:feign远程调用,非200请求,业务返回具体的异常信息

处理:使用 feign.Response接受远程调用反参(尽量不使用fallback和ErrorDecoder的实现类

@RequestMapping(method = RequestMethod.POST, value = "/oauth/token", headers = {"Content-Type: multipart/form-data"})
feign.Response postAccessToken1 (@RequestBody MultiValueMap<String, String> map);

请求非200的话,feign会拦截请求,response的body为空,可将异常消息的提示码返回到headers中

如果请求正常:使用:String str = Util.toString(feignRes.body().asReader()); 获取响应消息内容

 

 

 参考链接:(仅参考,过于繁琐,建议feign.Response更香)

https://www.liangzl.com/get-article-detail-33735.html    

https://blog.csdn.net/sun_shaoping/article/details/82079287

 

 

posted @ 2021-05-08 14:11  umin  阅读(655)  评论(0编辑  收藏  举报