Gracias por leer.
Soy nuevo en iOS y estoy tratando de cargar una imagen y un texto usando multi-part form encoding
iOS.
El curl
equivalente es algo como esto:curl -F "param1=value1" -F "[email protected]" "http://some.ip.address:5000/upload"
El curl
comando anterior devuelve la respuesta correcta esperada enJSON.
Problema: sigo recibiendo una solicitud HTTP 400, lo que significa que estoy haciendo algo mal al redactar el cuerpo de HTTP POST.
Lo que hice: Para alguna referencia, probé la aplicación iOS de Flickr API "¡El tamaño de la publicación es demasiado grande!" y Objetivo C: ¿Cómo cargar imágenes y texto usando HTTP POST? . Pero sigo obteniendo un HTTP 400.
Probé ASIHttpRequest
pero tuve un problema diferente allí (nunca se llamó a la devolución de llamada). Pero no investigué más sobre eso, ya que escuché que el desarrollador dejó de admitir la biblioteca: http://allseeing-i.com/[request_release] ;
¿Podría alguien ayudarme?
fuente
Respuestas:
Aquí está el código de mi aplicación para publicar una imagen en nuestro servidor web:
fuente
La respuesta de XJones funcionó a las mil maravillas .
Pero no se menciona / variables declaradas
_params
,BoundaryConstant
yrequestURL
. Entonces, pensé en publicar esa parte como un complemento a su publicación, para que pueda ayudar a otros en el futuro.Como mencioné antes, esta no es una respuesta en sí misma, solo un complemento de la publicación de XJones .
fuente
Para envío de imagen de publicación http y nombre de usuario y contraseña a través del método de publicación
fuente
Utilice AFNetworking; Coloque otros parámetros en el diccionario de parámetros y agregue los datos de imagen en los datos del formulario.
fuente
Aquí está mi biblioteca de kit de red similar para cargar archivos como formulario multiparte:
Utilice el delegado para notificar el progreso de la carga.
Utilice el nombre de notificación para notificar cuando la solicitud ha finalizado.
Utilizar el cola para agregar esta solicitud a su cola de operaciones para que se procese en el momento adecuado.
fuente
aquí está el código rápido de trabajo traducido del código proporcionado por @xjones. Muchas gracias por tu ayuda, compañero. La tuya fue la única forma que funcionó para mí. Usé este método para enviar 1 imagen y otro parámetro a un servicio web realizado en asp.net
fuente
Aquí hay una versión Swift. Tenga en cuenta que si no desea enviar datos del formulario, es importante enviar el límite del formulario vacío. Flask, en particular, espera datos de formulario seguidos de datos de archivo y no se completará
request.files
sin el primer límite.fuente
Cargue la imagen con los datos del formulario usando la clase NSURLConnection en Swift 2.2 :
Nota: Utilice siempre el
sendAsynchronousRequest
método en lugar desendSynchronousRequest
cargar / descargar datos para evitar bloquear el hilo principal. Aquí utilicé sendSynchronousRequest solo con fines de prueba.fuente
Puedo mostrarte un ejemplo de cómo subir un archivo .txt a un servidor con
NSMutableURLRequest
yNSURLSessionUploadTask
con la ayuda de un script php .secuencia de comandos php
fuente
fuente