2014年11月26日水曜日

AndroidでJSOUPを使う。その1.5(POST後のCookieを取得する)

SYSTEM_KDです。

AndroidでJSOUPを使う。その1(基本的な使い方 GET, POST, クッキーについて)の続きです。

前回書き漏らしたけど、その2に入れるには大したこと無いネタなのでその1.5として書きたいと思います。

内容としてはタイトル通りなのですが、POSTでの送信とCookieの取得については個別に書いたのですが、POSTを受けたWEB側の処理でCookieが変更された場合、前回記載した方法では取得することができません。

POSTした結果と共にCookieを取得するには下記の様に行います。

// Connectionを作成
Connection conn = Jsoup.connect("URLを指定");
// POSTするパラメータを設定
HashMap<String, String> param = new HashMap<String, String>();

// POSTを行いレスポンスを取得
Connection.Response res = conn.data(param).method(Method.POST).execute();

// レスポンスからCookieを取得
Map<String, String> cookies = res.cookies();

// レスポンスからDocumentを取得
Document doc = res.parse();

やってること自体は大したことないですが、
最初は方法を見つけるのにかなり時間がかかりました ^^;

重要な部分は見ての通り7行目以降の部分になります。

結果を受け取る際に、「Document」を取得するのではなく「Response」を取得しそこから必要な情報を取り出す様な流れとなります。

0 件のコメント:

コメントを投稿