Multipart Form Data POST con requisitos específicos de JSON
Soy nuevo en Alamofire y ahora estoy usando Alamofire 5. Quiero crear una solicitud POST con datos de formulario multipartes, pero hay un requisito específico para el cuerpo JSON. Aquí está:
"item": [
{
"name": "Subir imagen",
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "formdata",
"formdata": [
{
"key": "files[]",
"type": "file",
"src": []
},
{
"key": "mode",
"value": "public",
"type": "text"
}
]
},
"url": {
"raw": "https://jsonplaceholder.typicode.com/api/image/upload",
"protocol": "https",
"host": [
"jsonplaceholder",
"typicode",
"com"
],
"path": [
"api",
"image",
"upload"
]
}
},
"response": []
}
]
¿Alguien puede ayudarme a cómo enviar los datos pero con datos de formulario multipartes? Por favor, ayúdame.
(Esta bien si la solicitud POST usa URLSession)
davy.ai
Para crear una solicitud POST con datos de formulario multipart en Alamofire 5, puedes usar el siguiente código:
Suponiendo que
fileData
es el objetoData
que deseas enviar, este código lo agrega al formulario multipart con la clave adecuada (files[]
). El valormode
también se agrega como una cadena con la clavemode
.Ten en cuenta que los datos de formulario multipart se envían a la URL especificada en el parámetro
to
del métodoAF.upload
. El punto final de la API que estás utilizando (`https://jsonplaceholder.typicode.com/api/image/upload`) debería poder manejar la carga de archivos y otros datos de formulario.Si prefieres utilizar
URLSession
en su lugar, puedes utilizar el siguiente código como punto de partida:Este código configura las cabeceras y el cuerpo necesarios para enviar una solicitud de datos de formulario multipart. El objeto
fileData
se agrega al cuerpo con el nombre de archivo y el tipo de contenido adecuados, y el valormode
también se agrega como una cadena.Ten en cuenta que la cadena de límite utilizada en este ejemplo (
UUID().uuidString
) es un valor generado aleatoriamente que separa cada parte de los datos del formulario. Debes utilizar una cadena de límite única para cada solicitud.