LoginSignup
1
2

More than 1 year has passed since last update.

android appでOkHttpを使ってapiをたたくためにやったこと

Last updated at Posted at 2022-10-08

前置き

既存の自作webアプリ向けのbackendを
新規開発するandroidアプリからも利用したかった。
やり方を調べるのに時間がかかっためここにまとめる。

前提条件

開発環境は以下である。

OS macOS Monterey12.6
IDE IntelliJ IDEA 2022.2.2
言語 kotlin
ビルドツール gradle

追記箇所

実際に動作が確認できるまでに追記した箇所を示す。

build.gradle.kt

依存関係の追記。
pathは公式HPから参照した。
https://square.github.io/okhttp/#releases

implementation("com.squareup.okhttp3:okhttp:4.10.0")

AndroidManifest.xml

インターネットへのアクセスを許可する設定を追記する必要がある。

<uses-permission android:name="android.permission.INTERNET" />

MainActivity

公式HPのSampleを参照しつつ追記した。
http通信のような処理は非同期でないと怒られるようなのでThreadを使用している。
また、URLは適宜叩きたいものに変更すること。
https://square.github.io/okhttp/#get-a-url

class MainActivity : FragmentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        Thread {
            GetHoge().run("https://hogehoge")
        }.start()
    }

class GetHoge {
    private val client = OkHttpClient()

    @Throws(IOException::class)
    fun run(url: String): String? {
        val request: Request = Request.Builder()
            .url(url)
            .build()
        client.newCall(request).execute().use { response ->
            return response.body?.string()
        }
    }
}

最後に

日本語検索ではokhttpは3でないものの記事しかでてこなかった。
おそらく情報が古い。
やはり公式を見にいくことが大事。

また、個人的にはkotlinですべて書いていきたいものの、
javaで書かれたものが大半で置き換え作業に苦戦した。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2