主要是,我使用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。或者,我可以知道获取我的愿望页面需要哪些饼干吗?
答案 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());
任何有关此代码的建议都将受到赞赏。