はじめに
この記事は N・S高等学校 Advent Calendar 2021 の15日目です。
こんにちは。N高生です。空いてたので書きます。
本題
Postmanで言うこれをしたい。
ApiService.kt
interface ApiService {
    @JvmSuppressWildcards
    @POST("upload.php")
    suspend fun upload(@Body body: RequestBody): Response<ResponseBody> // Response<ResponseBody> はよしなに。
    companion object {
        var apiService: ApiService? = null
        fun getInstance(): ApiService {
            if (apiService == null) {
                apiService = Retrofit.Builder()
                    .baseUrl("URL") // TODO: ここにURLを入れる
                    .addConverterFactory(GsonConverterFactory.create())
                    .build().create(ApiService::class.java)
            }
            return apiService!!
        }
    }
}
Activity.kt
val api = ApiService.getInstance()
val file = File(/* TODO: いい感じに */)
val body = file.asRequestBody("application/pdf".toMediaTypeOrNull()) // MIMEはいい感じに変えてください。
val requestBody = MultipartBody.Builder()
    .setType(MultipartBody.FORM)
    .addFormDataPart("file", file.name, body)
    .addFormDataPart("a", "Vintage Culture")
    .addFormDataPart("b", "James Hype")
    .addFormDataPart("c", "Claptone")
    .build()
api.upload(requestBody)
さいごに
N高S高成績確認アプリを作ったのでインストールしてくれると喜びます。
宣伝ヨシッ!
