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

时间:2013-02-17 19:21:30

标签: android jsoup cookiemanager

主要是,我使用webview进入facebook。所以,我不知道哪些cookie被保存到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。或者,我可以知道获取我的愿望页面需要哪些饼干吗?

1 个答案:

答案 0 :(得分:2)

我已经解决了这个问题。首先,我一直在获得正确的cookie。那么问题是什么呢。或者我错误地将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());

任何有关此代码的建议都将受到赞赏。