kotlin:okhttp
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
kotlin:okhttp [2023/04/07 14:23] – [POSTメソッドの送信について] mikoto | kotlin:okhttp [2023/04/27 15:03] (現在) – mikoto | ||
---|---|---|---|
行 45: | 行 45: | ||
val response = OkHttpClient().newCall(request).execute() | val response = OkHttpClient().newCall(request).execute() | ||
</ | </ | ||
+ | |||
+ | ==== XMLを送信する方法 ==== | ||
+ | <code kotlin> | ||
+ | import okhttp3.MediaType.Companion.toMediaType | ||
+ | import okhttp3.OkHttpClient | ||
+ | import okhttp3.Request | ||
+ | import okhttp3.RequestBody.Companion.toRequestBody | ||
+ | |||
+ | fun function() { | ||
+ | val xml = """ | ||
+ | <?xml version=" | ||
+ | <aaa> | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | """ | ||
+ | | ||
+ | val media_type = " | ||
+ | val request_body = xml.toRequestBody(media_type) | ||
+ | val request = Request.Builder() | ||
+ | .url(url) | ||
+ | .post(request_body) | ||
+ | .build() | ||
+ | | ||
+ | val response = OkHttpClient().newCall(request).execute() | ||
+ | // 後続処理 | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== テキスト形式のリクエストボディーを作成する場合 ==== | ||
+ | <code kotlin> | ||
+ | import okhttp3.MediaType.Companion.toMediaType | ||
+ | import okhttp3.OkHttpClient | ||
+ | import okhttp3.Request | ||
+ | import okhttp3.RequestBody.Companion.toRequestBody | ||
+ | |||
+ | fun func() { | ||
+ | val text = "This is a sample." | ||
+ | val media_type = " | ||
+ | val request_body = text.toRequestBody(media_type) | ||
+ | val request = Request.Builder() | ||
+ | .url(url) | ||
+ | .post(request_body) | ||
+ | .build() | ||
+ | | ||
+ | val response = OkHttpClient().newCall(request).execute() | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== JSON形式のリクエストボディーを作成する場合 ==== | ||
+ | <code kotlin> | ||
+ | import okhttp3.MediaType.Companion.toMediaType | ||
+ | import okhttp3.OkHttpClient | ||
+ | import okhttp3.Request | ||
+ | import okhttp3.RequestBody.Companion.toRequestBody | ||
+ | |||
+ | fun func() { | ||
+ | val media_type = " | ||
+ | val json = " | ||
+ | val request_body = json.toRequestBody(media_type) | ||
+ | val request = Request.Builder() | ||
+ | .url(url) | ||
+ | .post(request_body) | ||
+ | .build() | ||
+ | |||
+ | val response = OkHttpClient().newCall(request).execute() | ||
+ | } | ||
+ | </ | ||
+ | |||
===== HTTPリクエストのタイムアウト値を設定する ===== | ===== HTTPリクエストのタイムアウト値を設定する ===== | ||
Call インターフェースの'' | Call インターフェースの'' | ||
行 62: | 行 131: | ||
call.timeout().timeout(60, | call.timeout().timeout(60, | ||
val response = call.execute() | val response = call.execute() | ||
+ | </ | ||
+ | |||
+ | ===== エラー処理 ===== | ||
+ | ==== レスポンスボディーがnullの場合の処理 ==== | ||
+ | <code kotlin> | ||
+ | val response = client.newCall(request).execute() | ||
+ | val responseBody = response? | ||
+ | |||
+ | if (response.isSuccessful && responseBody != null) { | ||
+ | // レスポンスボディを処理する | ||
+ | } else { | ||
+ | // エラー処理 | ||
+ | } | ||
</ | </ |
kotlin/okhttp.1680844985.txt.gz · 最終更新: 2023/04/07 14:23 by mikoto