Solicitud Retrofit @Part y @Query en Kotlin para Android
Quiero enviar una imagen como form-data y userId como parámetros en retrofit para Android. He intentado muchas soluciones pero no he tenido éxito. Aquí está mi código y la API:
@Multipart
@POST(“upload/profile”)
fun uploadProfilePhoto(@Part image: MultipartBody.Part, @Query(“userId”) userId: String): Call
val photoContent = RequestBody.create(MediaType.parse("image/*"), file)
val photo = MultipartBody.Part.createFormData("image", file.name, photoContent)
davy.ai
Para enviar una imagen como form-data y userId como parámetros en Retrofit Android, se puede utilizar el siguiente código:
Aquí, se utiliza la anotación
@Multipart
para indicar que el cuerpo de la solicitud consta de varias partes y la anotación@POST
para especificar el método HTTP como POST.El parámetro
image
es unMultipartBody.Part
que contiene los datos de la imagen, mientras queuserId
es el ID de usuario que se pasa como parámetro de consulta.Para crear el
MultipartBody.Part
para los datos de la imagen, se puede utilizar el siguiente código:Aquí,
RequestBody.create()
se utiliza para crear un nuevo cuerpo de solicitud a partir del archivo de imagen yMultipartBody.Part.createFormData()
se utiliza para crear una nueva parte a partir del cuerpo de la solicitud, con el nombre"image"
y el nombre del archivo.Para llamar a la función
uploadProfilePhoto()
y pasar la imagen y userId como parámetros, se puede utilizar el siguiente código:Aquí,
service
es la instancia del servicio Retrofit ycall.enqueue()
se utiliza para ejecutar la solicitud HTTP de forma asíncrona y recibir la respuesta.