我正在使用okhttp 3.0.1。
我在每一个地方都得到了使用okhttp2处理cookie的例子。
OkHttpClient client = new OkHttpClient();
CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
client.setCookieHandler(cookieManager);
可以请一些人指导我如何在第3版中使用。setCookieHandler方法在第3版中不存在。
发布于 2016-01-19 21:01:30
现在我在玩它。尝试PersistentCookieStore,为JavaNetCookieJar添加gradle依赖项
compile "com.squareup.okhttp3:okhttp-urlconnection:3.0.0-RC1"
和init
// init cookie manager
CookieHandler cookieHandler = new CookieManager(
new PersistentCookieStore(ctx), CookiePolicy.ACCEPT_ALL);
// init okhttp 3 logger
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
// init OkHttpClient
OkHttpClient httpClient = new OkHttpClient.Builder()
.cookieJar(new JavaNetCookieJar(cookieHandler))
.addInterceptor(logging)
.build();
`
发布于 2016-02-11 17:46:59
如果您想使用新的OkHttp 3 CookieJar并消除okhttp-urlconnection
依赖,可以使用该PersistentCookieJar。
您只需要创建一个PersistentCookieJar
实例,然后将其传递给OkHttp
构建器:
CookieJar cookieJar =
new PersistentCookieJar(new SetCookieCache(), new SharedPrefsCookiePersistor(context));
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.cookieJar(cookieJar)
.build();
发布于 2016-01-19 18:59:20
这里有一个简单的方法来创建您自己的CookieJar。它可以按你的意愿扩展。我所做的就是用这个CookieJar实现一个OkHttpClient并使用OkHttpClient.Builder构建这个CookieJar。
public class MyCookieJar implements CookieJar {
private List<Cookie> cookies;
@Override
public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
this.cookies = cookies;
}
@Override
public List<Cookie> loadForRequest(HttpUrl url) {
if (cookies != null)
return cookies;
return new ArrayList<Cookie>();
}
}
下面是如何创建OkHttpClient
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.cookieJar(new MyCookieJar());
OkHttpClient client = builder.build();
https://stackoverflow.com/questions/34881775
复制相似问题