そこで私はOkhttp 3を使い始めましたが、ウェブ上の例のほとんどは古いバージョンについて語っています。
OkHttp クライアント リクエストに Cookie を追加する必要がありますが、OkHttp 3 ではどのように実行しますか?
私の場合は、サーバーから受信せずにクライアントの呼び出しに静的に追加したいだけです。
ベストアンサー1
これを行うには 2 つの方法があります。
OkHttpClient client = new OkHttpClient().newBuilder()
.cookieJar(new CookieJar() {
@Override
public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
}
@Override
public List<Cookie> loadForRequest(HttpUrl url) {
Arrays.asList(createNonPersistentCookie());
}
})
.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(chain -> {
final Request original = chain.request();
final Request authorized = original.newBuilder()
.addHeader("Cookie", "cookie-name=cookie-value")
.build();
return chain.proceed(authorized);
})
.build();
2 番目の提案があなたに必要なのではないかと思います。
発見できるここ実際の例。