【问题标题】:feign.FeignException: status 401 error when REST API using a feign client tries to connectfeign.FeignException:使用 feign 客户端的 REST API 尝试连接时出现状态 401 错误
【发布时间】:2020-10-09 05:42:23
【问题描述】:

我有一个用 Java 编写的 Spring Boot REST API。我正在使用 Feign 客户端连接到另一个 REST API。端点用于标头参数、apikey 和 serviceName。 当端点调用 feign 客户端时出现此错误。

feign.FeignException: status 401 reading FacilityViewClient#getFacilities(Map,String,String)\r\n\tat feign.FeignException.errorStatus(FeignException.java:78)

这就是我使用头参数实现 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客户端中定义其他属性才能成功设置header参数

【问题讨论】:

    标签: java rest spring-cloud-feign


    【解决方案1】:

    我们解决了这个问题。 FeignClient 上的 url 和 path 错误。该错误误导我们认为它是未经授权的错误,而实际上它是 404 错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-13
      • 2019-12-30
      • 2020-09-10
      • 2011-05-08
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 2014-10-05
      相关资源
      最近更新 更多