【Androidアプリ開発】ネットに接続して情報を持ってくる方法(OkHttp)

完全にネットから遮断されたアプリもアリだとは思いますが、
やはり時代はインターネット。

アプリであっても、ネットに接続して情報を持ってきたり、
あるいは情報をネット上にアップロードしたりしたい場面は多いわけです。

 

OkHttpとは?

Androidアプリからネットに接続する方法として、
Androidアプリ製作の教本などを読むと、必ずHttpURLConnectionなど、
ライブラリを使わない、Androidに標準搭載してある方法が説明されています。

ですが!
これが割りとめんどくさくて分かりにくい!

もちろん、標準のやり方について一度学んでおくのはいいと思いますが、
毎回面倒くさいやり方をする必要は全く無いので、
ここでは、OkHttpというライブラリを使っちゃおうと思います。

「ライブラリってなんやねん!どうやって使うねん!」という方は以下のリンクを参照。
https://calculus-app.com/blog/develop_android/android_tips/217

OkHttpとは、HTTP通信(要するにネット接続)を行うための
オープンソース(無料で使っていいよ!)ライブラリです。

ぶっちゃけクックパッドなどの有名アプリもこのライブラリを使っているようなので、
皆さんも安心して使うことができます。

 

使い方

導入方法

OkHttp公式に行きましょう。
http://square.github.io/okhttp/

build.gradle(Module: app)のdependenciesに、
以下をコピペ(バージョンによって変わるので、上記リンクから公式を見てね)

compile 'com.squareup.okhttp3:okhttp:3.6.0'

その後、Sync Nowをクリック。

使い方

ネットワークへの接続は、非同期クラスの中でしかできないので、
非同期クラスを作って、その中で行ってください。

「非同期クラスってなんやねん!」という人は以下のリンク。
https://calculus-app.com/blog/develop_android/android_asynctask/206

@Override
protected String doInBackground (String... params) {

	Request request = new Request.Builder()
			.url("接続したいURL")
			.get()
			.build();

	OkHttpClient client = new OkHttpClient();

	try {
		Response response = client.newCall(request).execute();

		String strData = response.body().string();

	} catch (IOException e) {
		e.printStackTrace();
	}
	return strData;
}

RequestとOkHttpClientのインスタンスを作って、
それらをヒモ付てexecuteし、レスポンスを受け取るだけ。

うーん、実に簡単。

コメントを残す

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