当前位置: 首页 > 知识库问答 >
问题:

如何使用OKHTTP在Android上实现cookie处理?

施同
2023-03-14

使用quare https://github.com/Square/OkHttp的OkHttp,我如何:

  1. 检索从服务器返回的cookie
  2. 为即将到来的请求存储cookie
  3. 在后续请求中使用存储的cookie
  4. 更新后续请求返回的cookie

理想情况下,cookie将随每个请求自动存储、重新发送和更新。

共有1个答案

邹阳
2023-03-14

对于OkHttp3,一个简单的接受所有的、非持久化的CookieJar实现可以如下所示:

OkHttpClient client = new OkHttpClient.Builder()
    .cookieJar(new CookieJar() {
        private final HashMap<HttpUrl, List<Cookie>> cookieStore = new HashMap<>();

        @Override
        public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
            cookieStore.put(url, cookies);
        }

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

或者,如果您喜欢使用java.net.cookieManager,请在项目中包括OKHTTP-URLConnection,该项目包含JavaNetCookieJar,这是一个委托给java.net.cookieHandler:

dependencies {
    compile "com.squareup.okhttp3:okhttp:3.0.0"
    compile "com.squareup.okhttp3:okhttp-urlconnection:3.0.0"
}
CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
OkHttpClient client = new OkHttpClient.Builder()
    .cookieJar(new JavaNetCookieJar(cookieManager))
    .build();
 类似资料:
  • 在我的Android应用程序中,我试图从android-async-超文本传输协议切换到支持异步网络sind版本2.0的okhttp。虽然前者附带了持久cookie存储的实现,但我不知道如何为实现类似的东西。 在我的应用程序中,我有一个登录例程,在此期间会发送一个请求,如果成功,应该设置一个cookie。此cookie应附加到所有后续网络请求中,并应在应用程序重新启动后继续有效。 我在SO上找到了

  • 我试图为星号接口创建一个应用程序,配置设置已经做了正确的,因为我已经检查过了。 我不能从Asterisk服务器访问配置文件的原因似乎与连接有关。我需要使用cookie连接到登录会话的同一个实例。 但到目前为止,我还不能正确使用Cookie,需要一点帮助。

  • 我需要用Java实现一系列HTTP请求,并决定在4.3版(最新版本)中使用Apaches HttpClient。 问题是所有这些请求都使用cookie进行会话管理,而我似乎无法找到一种方法来访问cookie并在请求之间传递它。我在使用curl时的命令如下所示: 它们工作得很好。然而,对于HttpClient,它似乎不起作用。我尝试的是: 最后一行的输出总是一个空列表。我想它应该包含我的Cookie

  • 我创建了一个基于Phonegap/Cordova的Android应用程序,它使用cookie,例如用于会话身份验证/自动登录。在安全审查期间,提出了这样的担忧,即如果攻击者可以控制手机,他可以读出cookie并劫持用户的会话。 有没有办法以编程方式加密设备的存储或阻止使用Android OS 4.0及更高版本访问cookie?我更喜欢(但不是坚持)一个易于与Phonegap/Cordova集成的解

  • 本文向大家介绍python cookie反爬处理的实现,包括了python cookie反爬处理的实现的使用技巧和注意事项,需要的朋友参考一下 Cookies的处理 作用 保存客户端的相关状态 在爬虫中如果遇到了cookie的反爬如何处理? 手动处理     在抓包工具中捕获cookie,将其封装在headers中     应用场景:cookie没有有效时长且不是动态变化 自动处理  使用sess

  • 问题内容: 当我使用访问URL的请求时, cookie会自动发送回服务器 (在下面的示例中,所请求的URL设置了一些cookie值,然后重定向到另一个显示存储的cookie的URL) 是否可以通过将Chrome或Firefox设置为不接受Cookie的方式来临时禁用Cookie处理? 例如,如果我在禁用了cookie处理的情况下使用Chrome访问上述URL,则会得到我期望的结果: 问题答案: 您