クライアントリクエストにクッキーを追加する OkHttp 質問する

クライアントリクエストにクッキーを追加する OkHttp 質問する

そこで私は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 番目の提案があなたに必要なのではないかと思います。

発見できるここ実際の例。

おすすめ記事