2

我有一个使用 webview 的 android 应用程序,用户必须使用用户名和密码登录,然后才能重定向到我想用 jsoup 刮取数据的页面。由于 jsoup 线程将是一个不同的会话,因此用户必须再次登录。

现在我想使用从 webview 接收到的 cookie 与 jsoup 请求一起发送,以便能够抓取我的数据。

cookie 正在使用以下代码与 cookiesyncmanager 同步。这基本上是我卡住的地方,因为我不知道如何读出 cookie 也不知道如何将它附加到 jsoup 请求。请帮忙?:)

public void onPageFinished(WebView view, String url) {

            CookieSyncManager.getInstance().sync();

用户使用以下内容登录后我正在执行的 jsoup 抓取:

  doc = Jsoup.connect("https://need.authentication.com").get();

                Elements elements = doc.select("span.tabCount");
              Element count = elements.first();


                Log.d(TAG, "test"+(count));
4

1 回答 1

2

不是安卓开发者,但也许你可以尝试这样的事情:

final String url = "https://need.authentication.com";


// -- Android Cookie part here --
CookieSyncManager.getInstance().sync();
CookieManager cm = CookieManager.getInstance();

String cookie = cm.getCookie(url); // returns cookie for url

// ...

// -- JSoup part here --
// Jsoup uses cookies as "name/value pairs"
doc = Jsoup.connect("https://need.authentication.com").header("Cookie", cookie).get();

// ...

我希望这会有所帮助,但正如我之前所说:我不是 android 开发人员(并且代码没有经过测试!)

这是一些文档:

于 2012-09-12T21:03:04.647 回答