はじめに
この記事は 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高成績確認アプリを作ったのでインストールしてくれると喜びます。
宣伝ヨシッ!