Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.2K
Vistas
¿Cómo publicar datos de varias partes/formatos usando Fuel para Kotlin?

Necesito enviar una solicitud POST a un servidor. Se supone que debo pasar algunos parámetros y una imagen. Puedo hacer esto desde Postman, pero no puedo hacerlo en mi aplicación de Android (SDK más reciente) usando Fuel.

Este es el código que estoy usando:

 val formData = listOf("name" to "name") val (_, _, result) = Fuel.upload("http://10.0.2.2:3000/test", parameters = formData) .source { request, url -> imageFile } // type is File .responseObject<CustomResponse>()

Esta es la captura de pantalla del cartero: ingrese la descripción de la imagen aquí

No tengo acceso al código de back-end, solo algunos registros. Parece que el cuerpo de la solicitud está vacío y el archivo tampoco se carga. ¿Cómo puedo hacer esto? Estoy perdido.

También intenté pasar los parámetros como jsonBody, esto envía el cuerpo, pero el tipo de contenido no es multipart/form-data y aún falta la imagen.

Este código JS funciona :

 let formData = new FormData(); formData.append('name', 'name'); formData.append('image', this.file); axios.post(`${API_URL}/test`, formData, { headers: { 'Content-Type': 'multipart/form-data' } }).then(console.log).catch(console.log)

Editar: también intenté pasar el archivo como DataPart, todavía nada.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Después de un poco de lucha, descubrí lo que funcionaría:

 val file = FileDataPart.from("path_to_your_file", name = "image") val (_, _, result) = Fuel.upload("http://10.0.2.2:3000/test") .add(file) .responseObject<CustomResponse>()

No necesitaba la parte de nombre-nombre en mi caso, pero intentaría agregar InlineDataPart

over 4 years ago · Santiago Trujillo Denunciar

0

Después de algunos intentos finalmente encontré la solución. Prueba esto, creo que te ayudará.

 val params = listOf("email" to "test@email.com", "pass" to "123456") Fuel.upload("http://your-api-url.com/login", Method.POST, params) .responseString { _, _, result -> when (result) { is Result.Failure -> { print(result.getException().toString()) } is Result.Success -> { val data = result.get() print(data) } } }
over 4 years ago · Santiago Trujillo Denunciar

0

Logré enviar una solicitud POST a un servidor. Pasé un parámetro y una imagen.

 //Prepare POST body val postBody = listOf("name" to "name") //Call the API. val (_, _, result) = Fuel.upload("http://10.0.2.2:3000/test", Method.POST , postBody) .add(BlobDataPart(myInputStream, name = "image", filename = "default.jpg", contentType = "image/jpeg")) .responseString() //If failed, then print exception. If successful, then print result. when (result) { is Result.Failure -> { println(result.getException()) } is Result.Success -> { println(result.get()) } }

Puede leer la documentación relacionada aquí .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda