feign请求中怎么请求中怎么携带cookie 写一个完整携带cookie的java demo
时间: 2024-04-03 07:32:29 浏览: 243
在Feign中,可以通过实现`RequestInterceptor`接口来在请求头中添加Cookie信息。下面是一个完整的Java Demo:
```java
import feign.RequestInterceptor;
import feign.RequestTemplate;
import java.util.Map;
public class CookieRequestInterceptor implements RequestInterceptor {
private Map<String, String> cookies;
public CookieRequestInterceptor(Map<String, String> cookies) {
this.cookies = cookies;
}
@Override
public void apply(RequestTemplate template) {
StringBuilder cookieBuilder = new StringBuilder();
for (Map.Entry<String, String> cookie : cookies.entrySet()) {
cookieBuilder.append(cookie.getKey()).append("=").append(cookie.getValue()).append(";");
}
template.header("Cookie", cookieBuilder.toString());
}
}
```
使用时,可以先创建一个`Map`对象,将Cookie信息放入其中:
```java
Map<String, String> cookies = new HashMap<>();
cookies.put("cookie_name1", "cookie_value1");
cookies.put("cookie_name2", "cookie_value2");
```
然后创建一个`Feign.Builder`对象,设置`CookieRequestInterceptor`:
```java
Feign.Builder builder = Feign.builder();
builder.requestInterceptor(new CookieRequestInterceptor(cookies));
```
最后使用`builder`对象创建Feign接口的代理对象即可,例如:
```java
MyApi myApi = builder.target(MyApi.class, "http://example.com");
```
这个Demo中的`MyApi`是一个用户自定义的Feign接口,代表需要与之交互的远程服务。
阅读全文
相关推荐















