okhttp使用cookie的官方文档

CookieJar - OkHttp - OkHttp

引入okhttp依赖(version可变化)

<!-- okhttp -->
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>3.14.9</version>
</dependency>

代码示例:

//默认超时时间为2分钟
long timeout = 120L;

//缓存cookie,key为host:post,value为cookie集合
private static HashMap<String, List<Cookie>> cookieStore = new HashMap<>();

   OkHttpClient  okHttpClient= new OkHttpClient.Builder()
                .connectTimeout(timeout, TimeUnit.SECONDS)
                .readTimeout(timeout, TimeUnit.SECONDS)
                .writeTimeout(timeout, TimeUnit.SECONDS)
                .cookieJar(new CookieJar() {
                    @Override
                    public void saveFromResponse(HttpUrl httpUrl, List<Cookie> cookies) {
                        if (cookies != null && cookies.size() > 0) {
                            cookieStore.put(getCacheKey(httpUrl), cookies);
                        }
                    }

                    @Override
                    public List<Cookie> loadForRequest(HttpUrl httpUrl) {
                        List<Cookie> cookies = cookieStore.get(getCacheKey(httpUrl));
                        return cookies != null ? cookies : new ArrayList<>();
                    }
                }).build();


private static String getCacheKey(HttpUrl url) {
        return url.host() + ":" + url.port();
}

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐