android - 如何从 android.webkit.CookieManager 获取所有 cookie 或 cookie 的 url

标签 android jsoup cookiemanager

主要是,我使用 webview 登录了 facebook。所以,我不知道哪些 cookie 的 url 被保存到 CookieManager 中。我不知道这是否可能,但我知道该怎么做。

现在,我需要使用 Jsoup 获取一个页面。但我还需要传递一些 cookie 来获取页面,否则服务器将返回一个错误寻呼机。

我希望它与 Jsoup 一起使用,因为我需要页面中的一些信息

我尝试过类似的事情,但我一直收到错误页面:

Map<String, String> cookies = new HashMap<String, String>();
cookies.put(domain1, my_cookie1);
cookies.put(domain2, my_cookie2);
cookies.put(domain3, my_cookie3);
cookies.put(domain4, my_cookie4);

Document doc = Jsoup.connect(uri.toString())
                            .cookies(cookies)
                            .timeout(10000)
                            .get();
Log.e("title", doc.title());

my_cookie 是从 CookieManager 获取的。它们不为空,因为我已经打印了它们。

我认为问题出在 cookie 上。或不?有什么解决办法吗。我想我缺少 CookieManager 中的一些 cookie。

我需要获取该页面。

已编辑:

或者,是否可以将 cookimanager 传递给 Jsoup ?这样,它就可以直接从 cookiemanager 获取 cookie。或者,我可以知道获取我想要的页面需要哪些 cookie 吗?

最佳答案

我已经解决了这个问题。首先,我一直得到正确的 cookies 。那么当时的问题是什么?要么我错误地将 cookie 与 Jsoup 集成,要么 Jsoup 做错了什么。所以,首先我使用 HttpUrlConnection 获取页面,然后使用 Jsoup 解析它。像这样:

URL form = new URL(uri.toString());
HttpUrlConnection connection1 = (HttpURLConnection)form.openConnection();
connection1.setRequestProperty("Cookie", my_cookie);
connection1.setReadTimeout(10000);
StringBuilder whole = new StringBuilder();
BufferedReader in = new BufferedReader(
new InputStreamReader(new BufferedInputStream(connection1.getInputStream())));
String inputLine;
while ((inputLine = in.readLine()) != null)
      whole.append(inputLine);
in.close();
Document doc = Jsoup.parse(whole.toString());

任何有关此代码的建议将不胜感激。

关于android - 如何从 android.webkit.CookieManager 获取所有 cookie 或 cookie 的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14925061/

相关文章:

android - android-如何访问模型类 MVVM 中的上下文或共享首选项

java - Jsoup 白名单 : Parsing non-english character

c# - CEFSharp 单独的 CookieManage

android - 在默认 cookiestore 中手动设置 cookie 并在 okhttp 请求中使用它

java - Firebase 身份验证 : getCurrentUser from different Activities?

android - Jquery mobile-如何在按钮单击时打开Android设置页面

java - 获取工作目录的文件路径

java - 过滤图片的URL路径(img src)获取文件名

java - 使用 Jsoup 进行抓取