我有这样的场景,我的应用程序在 webView 中显示一个 2 页的登录过程。
第一页仅询问您计划连接到哪个域。
第二页要求提供凭据。
我正在尝试在 webView 中执行登录,然后执行来自本机代码的请求。
我意识到我需要从 webView 获取存储的 cookie(但从哪个 url?从第一页还是第二页?),然后将 cookie 用于本机代码请求。
有人可以告诉我该怎么做吗?登录过程很简单 - 用户通过 webview 登录 - 很好。现在,我知道如何使用 cookie 管理,但我不知道我应该查找哪个 cookie - 它是第一个登录页面的 url 吗?是第二个吗?有关系吗?
接下来,如何使用 cookie 通过 GET 请求发送回服务器,以便服务器知道我已通过身份验证?
我很欣赏我无能为力并寻求帮助的答案:)
由于接受的答案并没有真正描述它是如何完成的:
将这些行放在应用程序启动的地方:
CookieHandler.setDefault(new CookieManager()); // Apparently for some folks this line works already, for me on Android 17 it does not.
CookieSyncManager.createInstance(yourContext); // or app will crash when requesting cookie
然后在你的连接中:
String cookies = CookieManager.getInstance().getCookie(urlString);
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
// conn.setRequestMethod("GET");
// conn.setDoInput(true);
if (cookies != null)
conn.setRequestProperty("Cookie", cookies);
// Starts the query
conn.connect();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)