问题描述
使用Fegin进行远程接口调用出现400的错误,但是使用postman或curl命令进行接口访问却没有任何问题。
问题分析
根据Fegin调用失败,而postman直接访问会出现400错误。而400错误一般都是客户端错误,因此对方服务器接口应该是没有任何问题,可通过开启日志看看Feign调用的具体请求头和参数是否与postman一致。
开启Fegin日志
先使用如下代码开启Fegin日志:
import feign.Logger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class FeignConfig {@BeanLogger.Level feignLoggerLevel() {return Logger.Level.FULL;}
}
然后重启服务运行,通过记录的日志发现一个问题:出现了2个请求头Authorization请求头,通过在postman或curl命令中使用2个Authorization请求进行模拟请求,发现确实会出现400的错误ÿ