ユーザ用ツール

サイト用ツール


kotlin:okhttp

文書の過去の版を表示しています。


Okhttpクライアント

基本的な使い方

まず、OkHttpの依存関係をプロジェクトに追加する。

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

次に、OkHttpクライアントを作成する.

val client = OkHttpClient()

リクエストオブジェクトを作成する

val request = Request.Builder()
  .url("url")
  .build()

リクエストを送信する

OkHttpClient().newCall(request).execute().use { response ->
  if (!response.isSuccessful) throw RuntimeException() // <- これはエラーハンドリング
}

ヘッダーの追加

ヘッダーを追加するにはaddHeaderメソッドを使用する。

val request = Request.Builder()
  .url("site_url")
  .addHeader("key", "val") // key と val を設定する
  .addHeader("Content-Type", "text/xml") // Content-Typeの設定の一例
  .build()

POSTメソッドの送信について

POSTメソッドを用いてアクセスするにはpost()を使用する。

まずはリクエストボディーを作成し、それを指定してリクエストを作成する。

val request_body = "request"
val request = Request.Builder()
  .url(url)
  .post(request_body)
  .build()

val response = OkHttpClient().newCall(request).execute()

HTTPリクエストのタイムアウト値を設定する

Call インターフェースのtimeoutメソッドを使用する。 メソッドは3種類ある。以下、設定例。

val client = OkHttpClient.Builder()
    .connectTimeout(10, TimeUnit.SECONDS)
    .writeTimeout(10, TimeUnit.SECONDS)
    .readTimeout(30, TimeUnit.SECONDS)
    .build()

val request = Request.Builder()
    .url("http://example.com")
    .build()

val call = client.newCall(request)
call.timeout().timeout(60, TimeUnit.SECONDS)
val response = call.execute()
kotlin/okhttp.1680844985.txt.gz · 最終更新: 2023/04/07 14:23 by mikoto