2012-01-11 17 views
0

セッションIDとURLを渡してWebページにアクセスし、出力はHTML応答です。 jSoupを使用してこのレスポンスを解析し、タグ要素を取得します。 Jsoupの例では、接続を確立するためのStringが使用されています。どのように進めますか?jsoup接続パラメータ

擬似コード:

Iは、上記の方法を試して、この例外

java.io.IOException: 401 error loading URL http://www.abc.com/index 
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:387) 
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:364) 
    at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:143) 
    at org.jsoup.helper.HttpConnection.get(HttpConnection.java:132) 

は、基本的にentity.getContent()は、接続方法に文字列として渡されなければならないHTML応答を有する得ました。しかし、それは動作しません。

答えて

1

Apache Commons HttpClientとJsoupは同じCookieストアを共有しません。基本的には、HttpClientがJsoupのConnectionを介して取得したものと同じCookieを渡す必要があります。あなたはまた、単にHTTPリクエストを発射し、クッキーを維持するためのHttpClientを使用し続けることができ、また

を、代わりに通過StringとしてそのHttpResponseフィード:あなたはここにいくつかの具体的な例を見つけることができますJsoup#parse()

だから、これが何をすべき:

HttpResponse httpResponse = httpclient1.execute(httpget, httpContext); 
String html = EntityUtils.toString(httpResponse.getEntity()); 
Document doc = Jsoup.parse(html, testUrl); 
// ... 

をところで、あなたは必ずしも後続の要求のためにHttpClient全く新しいを作成する必要はありません。すでに作成したhttpclientを再利用してください。また、Stringという応答を得るあなたの方法は不器用です。上記の例の2行目は、最も単純な方法を示しています。

0

それは

Similar to 403 Forbidden, but specifically for use when authentication is possible but has failed or not yet been providedを意味するHTTPエラー401を示しています。

したがって、私はあなたのJavaコードを使用してウェブサイトにログインする必要があると思うか、自分のコードでクッキーを送信して自分自身を識別する必要があると思います。

+0

私はpesudoコードを編集しました。私はウェブサイトにログインし、クッキーを渡していることを確認してください。 – JNPW

関連する問題