Okhttp中获取Cookie并在WebView中使用

本文介绍了如何在Android应用中使用OkHttp获取服务器返回的Cookie,并将这些Cookie设置到WebView中,实现原生与H5之间的会话保持。通过保存和设置Cookie,确保混合开发时的无缝体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android Okhttp中获取Cookie并在WebView中使用的方法


现在混合开发成为主流,原生和H5交互更为广泛,所以要做大前端开发,APP和浏览器都得懂


1、从okhttp3.Response中获取Cookies并保存

  private void saveCookies(okhttp3.Response response) {
        Headers headers = response.headers();
        List<String> values = headers.values("Set-Cookie");
        if (values != null && values.size() > 0) {
            StringBuilder sb = new StringBuilder();
            for (String s : values) {
                sb.append(s);
            }
            /**
            * 将拼接结果保存到sp中,以备后面使用
            * 如:JSESSIONID=799F9F81ABC8D4A012CFD3544D1BFC95; Path=/; HttpOnly
            */
            SpUtil.getInstance().setStringValue(CommonHttpConsts.SET_COOKIE, sb.toString());
        }
    }

注意:多个结果之间采用逗号 隔开


2、在WebView中使用cookie

    private void setCookie(String webUrl) {
        CookieManager.allowFileSchemeCookies();
        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptCookie(true);
        cookieManager.removeSessionCookies(value -> Log.d(TAG, "onReceiveValue: " + value));
        String cookie=SpUtil.getInstance().getStringValue(CommonHttpConsts.SET_COOKIE);
        cookieManager.setCookie(webUrl,cookie);
        cookieManager.flush();
    }
     ...在加载界面之前设置cookies
     mWebView.loadUrl(this.webUrl);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值