okhttp请求使用cookie
·
okhttp使用cookie的官方文档
引入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();
}
更多推荐
所有评论(0)