1

同じサイトの別のリンクから情報を取得するためにJsoupを使用してWebサイトにログインしようとして立ち往生しています。接続しても、セッションからすべてのCookieが返されません。__utma、__ utmbなどを使用してログを記録する必要があるかどうかはわかりませんが、ログに記録できないのはそれだけだと思います。

これがコードです。

public static void main(String[] args) throws Exception {
    String url = "https://www.evoicetelecom.com.br/customers/myAccount";

    final Connection.Response res = Jsoup.connect("http://www.evoicetelecom.com.br/login/")
                .data("userName", "user")
                .data("password", "pass")
                .method(Connection.Method.POST)
                .execute();


    Document doc = res.parse();
    Map<String, String> cookies = res.cookies();


Document doc2 = Jsoup.connect(url).cookies(cookies).get();

Elements element = doc2.select("body");

System.out.println(element);

    }

印刷は、それが正しいかどうかを確認するだけです。

4

1 に答える 1

1

同様の問題がありましたが、私の場合、Cookie の値が空 ("") でした。その理由は、応答ヘッダー パーサーで Cookie の値がリセットされたためであることがわかりました。Jsoup はオープン ソースであるため、応答処理を簡単にデバッグできます。試してみると、問題の答えが見つかるかもしれません。私の場合、HttpConnection.Base クラスの Cookie メソッドにこの小さな if ステートメントを追加しただけです。

        if(value.length() == 0 && cookies.containsKey(name)){
            return (T) this;
        }
于 2013-01-26T22:03:28.480 に答える