如果您在没有弹簧的情况下直接使用Feign客户端
那么你可以在Feign Interface中传递类似这样的Header params
@Headers("Content-Type: application/json") @RequestLine("PATCH infusionsoft/contacts/{contactId}?format={format}") InfusionsoftFullContact updateContact(@Param("contactId") Long contactId, @Param("format") String format,InfusionsoftFullContact contact,@HeaderMap Map<String, Object> headerMap);
HeaderParams可以如下所示
Map<String, Object> headerMap = new HashMap<>(); headerMap.put("application", "FDX"); headerMap.put("Authorization", "Basic aW5mdXNpb25zb2Z0OnBhc3N3b3Jk"); headerMap.put("platform",user.getPlatform()); headerMap.put("platformKey", user.getPlatformKey()); headerMap.put("email",user.getEmail()); headerMap.put("Content-Type", MediaType.APPLICATION_JSON);
您可以简单地将标题作为参数传递,并相应地在界面中声明您的方法。请在下面找到代码片段。
当您运行日志级别已满的Feign客户端(feign.client.config.default.loggerLevel = full)时,您将看到授权标头(在我的情况下是OAuth Bearer访问令牌)。
希望这会有所帮助。
祝一切顺利, 维姆
@FeignClient(name="mde", url="${MDE.campaignServiceEndpoint}") public interface CampaignClientService { @RequestMapping(method = RequestMethod.GET, value = "/useCases/search/findByName?name={name}") @Cacheable("placementUseCase") PlacementUseCase findUseCaseByName(@RequestHeader(value = "Authorization", required = true) String authorizationHeader, @PathVariable("name") String name);