【问题标题】:Collect cookies from a website using jsoup使用 jsoup 从网站收集 cookie
【发布时间】:2018-07-06 01:21:20
【问题描述】:
我必须构建一个 android 应用程序,它可以接收任何网站并返回该网站中的所有 cookie 及其域属性。
我正在使用 jsoup 来连接和解析 html,但我不知道如何收集它的 cookie。我对“jsoup”不太熟悉,因为这是我第一次使用它。
有什么建议吗?我将不胜感激。
我已经尝试过了,但上诉不正确:
Document doc2 = Jsoup.connect(editText.getText().toString()).cookies(cookies());
【问题讨论】:
标签:
android
html
android-studio
cookies
jsoup
【解决方案1】:
当您调用 Jsoup.connect("...") 时,您会得到一个实现 Connection 接口的对象 (see API)
您在 Connection 实例上调用的 cookies 方法旨在为 HTTP 请求设置 cookie。为了从 HTTP 响应中检索 cookie,您需要获取一个 Connection.Response 的实例,您可以通过调用 connection.execute() 来获取该实例。
总结起来,你的代码应该是这样的:
try {
Map<String, String> cookies = Jsoup.connect("https://www.google.com").execute().cookies();
System.out.println(cookies);
} catch (IOException e) {
// error handling
}
作为额外的考虑,请记住,在 Android 中,您不允许从主线程执行网络调用,否则您会收到异常。