5

HTMLを解析するためのJsoupが好きですが、接続に問題があります。同じWebサイトにリクエストを送信する必要がありますが、クエリパラメータが異なります(「id = XXX」など)。リクエストは次のようになります。

http://website/?id=XXX

IDごとに新しい接続を作成したくありません。代わりに、すべてのID要求に対して1つの接続を保持します。これが、私のコードです。

Connection conn = null;

..
if (_conn == null) {
 _conn = Jsoup.connect("http://website/";
}
doc = _conn.data("id", id).get()
..

しかし、それは初めてしか機能しないようで、コードを実行するたびに同じリクエストを繰り返すだけです。その場合、別のときに別のIDを渡しても、最初のIDしかクエリできません。どうすればこれを解決できますか?

4

1 に答える 1

2

_conn.url();リクエストごとに変更することで、何らかの再利用を実現できたので、あなたの場合は次のようになります

String siteUrl = "http://website/";
Connection _conn = Jsoup.connect(siteUrl);
int[] ids = {1,2,3};
for (int i : ids) {
    _conn.url(siteUrl + "?id=" + i);
    Document doc = _conn.get();
}

_conn.request().data()私の意見では、これは変更よりもはるかに洗練されていませんが、これが唯一の方法であるようです。

それが役に立てば幸い。

于 2013-01-05T19:54:36.860 に答える