SYSTEM_KDです。
AndroidでHTMLをパースしたり、http通信時に便利なライブラリ「JSOUP」(JSONじゃないよ)についての使い方を自分の備忘録をかねてまとめたいと思います。
ネット上に記事があるようで、やりたいこについてのってなかったのでまとめ。
まず、JSOUPを利用するために必要なライブラリを用意します。
必要ならライブラリは、「JSOUPのjar」と「HttpClient」になります。
それぞれ、下記からダウンロードします。
・HttpClient
※Binaryのzipかtar.gzあたりをダウンロード
※2014/11/24時点の最新バージョンは 4.3.6 でした
・JSOUPのjar
※2014/11/24時点の最新バージョンは 1.8.1 でした。
ライブラリをダウンロードしたら、必要なjarだけとりだします。
AndroidでJSOUPを利用するために必要なライブラリは次になります。
・jsoup-1.8.1.jar
・httpcore-4.3.3.jar
・httpmime-4.3.6.jar
あとは、上記のjarを利用するAndroidプロジェクトの「libs」にコピーすれば準備OK.
では、早速利用してみたいと思いますが、全体的なソースは省きます。
(大まかな部分はネット上にまとめられておりますので、JSOUPの使い方だけに絞ります)
まず、GETから
// Connectionを作成
Connection conn = Jsoup.connect("URLを指定");
Document doc = conn.get();
これだけです。これでHTTPへリクエスト飛ばせます。
あとは、DocumentからJQueryライクにHTMLを扱えます!
次に、POST
// Connectionを作成
Connection conn = Jsoup.connect("URLを指定");
// POSTするパラメータを設定
HashMap<String, String> param = new HashMap<String, String>();
// nameとageをPOSTする
param.put("name", "SYSTEM_KD");
param.put("age", "30");
// post
Document doc = conn.post();
以上です。これで、POSTができます。
あとは、GETと同様にDocumentからHTMLを扱います。
と、ここまでは、探せばネット上にあるかと思います。
まぁ、これだけあれば色々できるのですが、もう一歩踏み込もうとすると、とたんに情報が少なくなる気がします。
と言うことで、ちょっと踏み込んで、Cookieを利用する場合について記載したいと思います。
POSTを使う場合等は、色々やっていくうちにCookieを利用したくなるかと思います。
では、Cookieの取得から
// Connectionを作成
Connection conn = Jsoup.connect("URLを指定");
// Cookieを取得
Map<String, String> cookies = conn.execute().cookies();
もったいぶりましたが、あっさり取れます。
反対に、Cookieを設定する場合
(上記で取得した値を設定すると想定)
// Connectionを作成
Connection conn = Jsoup.connect("URLを指定");
// Cookieを設定
for (Map.Entry<String, String> cookie : cookies.entrySet()) {
conn.cookie(cookie.getKey(), cookie.getValue());
}
設定の方も簡単におこなえます。
これで、基礎的な部分は網羅できるかと思います。
次回は、その2 ベーシック認証がかかっている状態での、GETとPOSTについて書きたいと思います。
非常に為になりました。okhttpと迷ってましたがjsoupの方が簡単そうですね
返信削除