Retrofitを使用してフォームエンコードを行う方法


  1. まず、Retrofitをプロジェクトに追加します。Gradleの依存関係に以下の行を追加します。
implementation 'com.squareup.retrofit2:retrofit:2.x.x'
  1. フォームエンコードを行うためのデータクラスを作成します。例えば、以下のようなクラスを作成します。
data class FormData(
    @Field("username") val username: String,
    @Field("password") val password: String
)
  1. Retrofitのインスタンスを作成します。以下のようなコードを使用します。
val retrofit = Retrofit.Builder()
    .baseUrl("https://api.example.com")
    .addConverterFactory(FormUrlEncodedConverterFactory.create())
    .build()
  1. APIインターフェースを作成します。以下のようなメソッドを持つインターフェースを作成します。
interface ApiService {
    @FormUrlEncoded
    @POST("login")
    fun login(@Field("username") username: String, @Field("password") password: String): Call<ResponseBody>
}
  1. フォームエンコードを行うリクエストを送信します。以下のようにリクエストを作成し、実行します。
val apiService = retrofit.create(ApiService::class.java)
val call = apiService.login("myUsername", "myPassword")
call.enqueue(object : Callback<ResponseBody> {
    override fun onResponse(call: Call<ResponseBody>, response: Response<ResponseBody>) {
        // リクエストが成功した場合の処理
    }
    override fun onFailure(call: Call<ResponseBody>, t: Throwable) {
        // リクエストが失敗した場合の処理
    }
})

これで、Retrofitを使用してフォームエンコードを行う方法がわかりました。上記の手順に従ってコードを実装してみてください。