有两种方法可以做到这一点:
OkHttpClient client = new OkHttpClient().newBuilder()
.cookieJar(new CookieJar() {
@Override
public void saveFromResponse(HttpUrl url, List cookies) {
}
@Override
public List loadForRequest(HttpUrl url) {
final ArrayList oneCookie = new ArrayList<>(1);
oneCookie.add(createNonPersistentCookie());
return oneCookie;
}
})
.build();
...
public static Cookie createNonPersistentCookie() {
return new Cookie.Builder()
.domain("publicobject.com")
.path("/")
.name("cookie-name")
.value("cookie-value")
.httpOnly()
.secure()
.build();
}
或简单地说
OkHttpClient client = new OkHttpClient().newBuilder()
.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
final Request original = chain.request();
final Request authorized = original.newBuilder()
.addHeader("Cookie", "cookie-name=cookie-value")
.build();
return chain.proceed(authorized);
}
})
.build();
我觉得第二个建议是你需要的.
您可以找到here个工作示例.