В настоящее время я загружаю несколько изображений, используя модификацию, и хотел бы иметь возможность добавить тег через Interceptor, чтобы я мог получить указанный c запрос на загрузку и отменить его при необходимости.
Вот мой основной метод, который инициирует запрос на загрузку:
private suspend fun uploadFileCallback(index: Int) {
val requestParentId =
RequestBody.create(MediaType.parse("text/plain"), parentWebIds[index])
val body = MultipartBody.Part.createFormData("file", files[index].name, fileBody)
val call = apiClient.uploadCallBack(token, requestParentId, body)
try {
call.enqueue(object : Callback<UploadResponse> {
override fun onResponse(
call: Call<UploadResponse?>?, response:Response<UploadResponse?>
) {
if (response.isSuccessful) {
postListener?.onSuccess(response.message())
} else {
postListener?.onFailure(response.message())
}
}
override fun onFailure(call: Call<UploadResponse?>?, t: Throwable?) {}
})
} catch (e: NoInternetException) {
e.printStackTrace()
} catch (e: Exception) {
e.printStackTrace()
}
}
, а вот запрос на обслуживание:
@Multipart
@POST("/upload_photo")
suspend fun uploadImageResponse(
@Header("Authorization") token: String,
@Part("id") parentId: RequestBody,
@Part file: MultipartBody.Part
): Response<UploadResponse>
companion object {
operator fun invoke(connectivityInterceptor: ConnectivityInterceptor
): PostUploadService {
val okHttpClient = OkHttpClient.Builder()
.addInterceptor(connectivityInterceptor)
.build()
return Retrofit.Builder()
.client(okHttpClient)
.baseUrl(URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(PostUploadService::class.java)
}
}
Каков наилучший способ продолжить и добавить тег?