Merci d'avoir lu.
Je suis nouveau sur iOS et j'essaie de télécharger une image et un texte en utilisant multi-part form encoding
iOS.
L' curl
équivalent est quelque chose comme ceci:curl -F "param1=value1" -F "[email protected]" "http://some.ip.address:5000/upload"
La curl
commande ci-dessus renvoie la réponse correcte attendue dansJSON.
Problème: je reçois toujours une requête HTTP 400, ce qui signifie que je fais quelque chose de mal lors de la composition du corps HTTP POST.
Ce que j'ai fait: Pour une référence, j'ai essayé l' application iOS Flickr API "Taille POST trop grande!" et Objectif C: Comment télécharger une image et du texte en utilisant HTTP POST? . Mais je continue à recevoir un HTTP 400.
J'ai essayé le ASIHttpRequest
mais j'ai eu un problème différent (le rappel n'a jamais été appelé). Mais je n'ai pas enquêté davantage sur ce point car j'ai entendu dire que le développeur avait cessé de soutenir la bibliothèque: http://allseeing-i.com/[request_release] ;
Est-ce que quelqu'un pourrait m'aider s'il vous plaît?
la source
Réponses:
Voici le code de mon application pour publier une image sur notre serveur Web:
la source
La réponse de XJones a fonctionné comme du charme.
Mais il n'a pas mentionné / déclaré les variables
_params
,BoundaryConstant
etrequestURL
. J'ai donc pensé à publier cette partie en tant qu'add-on à son message, afin que cela puisse aider les autres à l'avenir.Comme je l'ai mentionné plus tôt, ce n'est pas une réponse en soi, juste un addon au message de XJones .
la source
Pour l' envoi de l'image de publication http et du nom d'utilisateur et du mot de passe via la méthode de publication
la source
Utilisez AFNetworking; Mettez d'autres paramètres dans le dictionnaire de paramètres et ajoutez les données d'image dans les données de formulaire.
la source
Voici ma bibliothèque de kits réseau similaire pour télécharger des fichiers sous forme de plusieurs parties:
Utilisez le délégué pour notifier la progression du téléchargement.
Utilisez le notificationName pour notifier la fin de la demande.
Utilisez la file d' attente pour ajouter cette demande dans votre file d'attente d'opérations afin qu'elle soit traitée au bon moment.
la source
voici le code swift fonctionnel traduit du code fourni par @xjones. Merci beaucoup pour votre aide. Le vôtre était le seul moyen qui fonctionnait pour moi. J'ai utilisé cette méthode pour envoyer 1 image et un autre paramètre à un webservice réalisé dans asp.net
la source
Voici une version Swift. Notez que si vous ne souhaitez pas envoyer de données de formulaire, il est toujours important d'envoyer la limite de formulaire vide. Flask, en particulier, attend des données de formulaire suivies de données de fichier et ne se remplira pas
request.files
sans la première limite.la source
Téléchargez l'image avec les données du formulaire à l'aide de la classe NSURLConnection dans Swift 2.2 :
Remarque: utilisez toujours la
sendAsynchronousRequest
méthode au lieu desendSynchronousRequest
pour télécharger / télécharger des données pour éviter de bloquer le thread principal. Ici, j'ai utilisé sendSynchronousRequest à des fins de test uniquement.la source
Je peux vous montrer un exemple de téléchargement d'un fichier .txt sur un serveur avec
NSMutableURLRequest
etNSURLSessionUploadTask
avec l'aide d'un script php .Script php
la source
la source