[Android] OkHttp3 を使ってみた / Get Post のサンプルアプリ

はじめに

Apache Http Client が API 22 から deprecated になったことを受け、
通信ライブラリとして OkHttp を選択されているようですね。
そんなわけで試しに使ってみたメモです。

導入

おなじみの gradle ファイルに書くだけ。
本記事時点で、OkHttp のバージョンは、3.4.2 でした。

サンプルアプリ

okhttp3-sample_01
 

Get ボタンと Post ボタンを用意して
OkHttp を使って各メソッドを実行し、
レスポンスを表示するサンプルアプリです。

Get のときは、お天気Webサービス(Livedoor Weather Web Service / LWWS) の API を叩いてみます。
サンプルとして東京の天気予報をリクエストします。
http://weather.livedoor.com/forecast/webservice/json/v1?city=130010
クエリの city には、東京の番号である 130010 を入れます。

GETTESTボタンをタップすると Response には、APIが返す JSON データが表示されます。
Description には指定した JSON オブジェクトをひとつ表示しています。
このサンプルでは、例として配列 pinpointLocations の1番目のオブジェクトの
キー “name” の値を表示します。
東京における1番目のピンポイントロケーションは千代田区ですので、
“千代田区” と表示されるはずです。


<広告>


Post のときは、キーと対応する値を一緒に送信します。
確認には、HTTPアクセス POST送信 テスト確認用ページ
こちらのテストサイト様を使用させていただきました。
POSTTESTボタンをタップするとレスポンスとしてHTMLがそのまま表示されます。
そのHTMLの中に送信したキーと対応する値を確認できるはずです。

ソースコード

■ MainActivity.java

onResponse() など各コールバックは、UIスレッドで実行されません。
そのため、表示を更新するには runOnUIThread() などを実行する必要があります。
 

■ activity_main.xml

実行結果

okhttp3-sample_02
 

Get, Post それぞれレスポンスが表示されていることが確認できます。
 

okhttp3-sample_03
 
Get のときの Description もきちんと”千代田区”です。
 

OkHttp のお試しサンプルアプリでした。
ではでは。
 
 


<広告>

コメントを残す

メールアドレスが公開されることはありません。