KotlinのOkHttpの基本!HTTPクライアントの使い方を解説
生徒
「KotlinでWebサイトからデータを取ってきたりするには、どうすればいいんですか?」
先生
「そのときに便利なのが、OkHttpというHTTPクライアントライブラリです。Kotlinでも簡単に使えますよ。」
生徒
「HTTPクライアントって何ですか?難しそう……」
先生
「簡単にいうと、Webの住所(URL)にアクセスして、情報を取りに行く郵便屋さんのようなものです。まずは基本的な使い方から見ていきましょう!」
1. OkHttpとは?KotlinでのHTTP通信に便利なライブラリ
KotlinでWeb APIと連携するには、HTTPリクエスト(ネット上のデータを取得・送信する処理)を行う必要があります。そんなときに役立つのが、OkHttpというライブラリです。
OkHttpは、シンプルで高速なHTTPクライアントで、KotlinやJavaでよく使われています。無料で使えて、設定も簡単なので、初心者にもおすすめです。
2. HTTPクライアントって何?わかりやすく例えると?
HTTPクライアントとは、「インターネット上のお店に行って、データという商品をもらってくる配達人」のような存在です。
たとえば、「天気予報のデータをください」とお願いして、その結果を受け取るようなイメージです。URL(インターネット上の住所)にアクセスして、情報をもらってくるのがHTTPクライアントの役割です。
3. OkHttpの使い方(GETリクエスト編)
WebサイトやAPIからデータを取得する方法として「GETリクエスト」があります。これは「情報をください」と相手に伝える通信のことです。
以下は、KotlinでOkHttpを使ってGETリクエストを送る簡単なサンプルコードです。
import okhttp3.OkHttpClient
import okhttp3.Request
fun main() {
val client = OkHttpClient()
val request = Request.Builder()
.url("https://example.com")
.build()
val response = client.newCall(request).execute()
println(response.body?.string())
}
urlにアクセスした結果が画面に表示されます。
4. GETリクエストの結果はどう表示される?
上記のプログラムを実行すると、指定したWebサイトのHTMLやJSONデータが表示されます。たとえば、以下のように表示されます。
<html>
<head><title>Example Domain</title></head>
<body>...</body>
</html>
これが、Webから取得した「中身」です。HTMLという形式で書かれており、Webページの見た目や構造を表す言語です。
5. OkHttpの依存関係をGradleに追加する方法
KotlinでOkHttpを使うには、まずプロジェクトの設定ファイルにライブラリを追加する必要があります。Gradle(グレードル)というツールを使って、依存関係を管理します。
dependencies {
implementation("com.squareup.okhttp3:okhttp:4.12.0")
}
このように書くことで、OkHttpがプロジェクト内で使えるようになります。
6. 非同期通信って何?初心者向けに解説
OkHttpでは、ネットワークの処理に「非同期通信」も使えます。これは、「データを取りに行ってる間に他の作業をする」というイメージです。
たとえば、料理を注文してから待っている間に、別の作業(飲み物を取りに行くなど)をするようなものです。アプリの動作を止めずに、裏で通信できるので、便利です。
7. 非同期でリクエストを送る方法(enqueue)
OkHttpでは、非同期で通信するにはenqueueメソッドを使います。以下のように記述します。
import okhttp3.*
import java.io.IOException
fun main() {
val client = OkHttpClient()
val request = Request.Builder()
.url("https://example.com")
.build()
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
println("通信に失敗しました: ${e.message}")
}
override fun onResponse(call: Call, response: Response) {
println("取得したデータ: ${response.body?.string()}")
}
})
}
このように書くと、データ取得中もアプリは止まらずに動作できます。
8. エラーハンドリングも忘れずに!
ネットワーク通信では、うまく接続できなかったり、サーバー側のエラーが起きることもあります。onFailureで失敗を処理し、onResponseで成功時の処理を書きましょう。
「エラーハンドリング」とは、失敗したときの対処法を書くことです。初心者のうちはエラーが出ると焦りますが、事前にエラーを想定してコードを書くのが大切です。
9. KotlinでのAPI連携はOkHttpから始めよう!
今回は、KotlinでOkHttpを使ってWebサイトやAPIにアクセスする方法を解説しました。
・GETリクエストでデータを取得する方法
・非同期処理でスムーズなアプリ体験を実現
・エラーハンドリングで失敗に備える
最初は難しそうに思えるかもしれませんが、OkHttpはKotlinでWebとやり取りする基本中の基本です。ぜひ実際に手を動かしてみてください!