我有一个用Java编写的Spring Boot REST API。我正在使用一个假客户端连接到另一个REST API。端点使用标头参数apikey和serviceName。当端点调用feign客户端时,我收到此错误。
feign.FeignException: status 401 reading FacilityViewClient#getFacilities(Map,String,String)\r\n\tat feign.FeignException.errorStatus(FeignException.java:78)这就是我如何使用header参数实现feign客户端:
@GetMapping(path = "/schedule-svc/api/v1/facilities")
FacilitiesViewResponse getFacilities(@RequestHeader Map headers,
@RequestParam("facilityType") String facilityType,
@RequestParam("stateProvinceCode") String stateProvinceCode);这是使用feign客户端的调用:
Map<String, Object> headerMap = new HashMap<>();
headerMap.put("apikey", "xxxxxxx" );
headerMap.put("SERVICE-NAME", "Location");
FacilitiesViewResponse facilitiesViewResponse = facilityViewClient.getFacilities( headerMap,"RALYD", "PA");我还尝试使用单独的@RequestHeader字符串参数,但得到了相同的错误。如下所示:
@RequestHeader("apikey") String apiKey
@RequestHeader("SERVICE-NAME") String serviceName出现相同的错误。
我可以使用Postman访问服务,标题信息如下所示:

是否需要在feign客户端中定义其他属性才能成功设置标头参数
发布于 2020-06-25 20:26:02
我们解决了这个问题。FeignClient上的url和路径错误。这个错误误导我们认为它是一个未经授权的错误,而实际上它是一个404错误。
https://stackoverflow.com/questions/62462301
复制相似问题