在使用 Feign 进行 HTTP 请求时,可以通过添加 @RequestHeader 注解来指定请求的 Header 参数。以下是使用 Feign 的 @RequestHeader 注解的示例:
public interface MyApiClient {
@RequestMapping(method = RequestMethod.GET, value = "/api/resource")
ResponseEntity<String> getResource(@RequestHeader("Authorization") String token);
}
在上述示例中,我们在 getResource 方法的参数上添加了 @RequestHeader("Authorization") 注解,它指示 Feign 在发送请求时将指定的值作为 "Authorization" Header 参数传递。
您可以根据需要为方法的每个 Header 参数添加相应的 @RequestHeader 注解。例如,如果您要传递多个 Header 参数,可以像这样添加多个注解:
public interface MyApiClient {
@RequestMapping(method = RequestMethod.GET, value = "/api/resource")
ResponseEntity<String> getResource(@RequestHeader("Authorization") String token,
@RequestHeader("Content-Type") String contentType);
}
在上述示例中,我们添加了两个 @RequestHeader 注解来指定不同的 Header 参数。
然后,您可以通过调用 Feign 客户端的方法,并传递相应的参数值来发起请求,Feign 将在请求中包含指定的 Header 参数。例如:
public class MyApp {
public static void main(String[] args) {
MyApiClient client = Feign.builder()
.target(MyApiClient.class, "http://api-service-url");
String token = "Bearer my-token";
String contentType = "application/json";
ResponseEntity<String> response = client.getResource(token, contentType);
// 处理响应
}
}
在上述示例中,我们调用 getResource 方法并传递了 token 和 contentType 参数值,Feign 将使用这些值作为请求的 Header 参数发送请求。
From ChatGPT