使用 OkHttp 3 自动处理 cookie

新手上路,请多包涵

我正在使用 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 中不存在。

原文由 user2672763 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

现在我正在玩它。尝试 PersistentCookieStore ,为 JavaNetCookieJar 添加 gradle 依赖项:

compile "com.squareup.okhttp3:okhttp-urlconnection:3.0.0-RC1"

和初始化

    // 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();

`

原文由 1f7 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你想使用新的 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();

原文由 franmontiel 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题