Dziękuje za przeczytanie.
Jestem nowy na iOS i próbuję przesłać obraz i tekst, używając multi-part form encoding
w iOS.
curl
Odpowiednik jest mniej więcej tak:curl -F "param1=value1" -F "[email protected]" "http://some.ip.address:5000/upload"
Powyższe curl
polecenie zwraca oczekiwaną poprawną odpowiedź w formacieJSON.
Problem: Ciągle otrzymuję żądanie HTTP 400, co oznacza, że robię coś nie tak podczas tworzenia treści HTTP POST.
Co zrobiłem: W celach informacyjnych wypróbowałem aplikację Flickr API na iOS „Zbyt duży rozmiar POST!” i Cel C: Jak przesłać obraz i tekst za pomocą HTTP POST? . Ale ciągle otrzymuję HTTP 400.
Próbowałem, ASIHttpRequest
ale miałem inny problem (nigdy nie zadzwoniono). Ale nie badałem tego dalej, ponieważ słyszałem, że programista przestał wspierać bibliotekę: http://allseeing-i.com/[request_release] ;
Czy ktoś mógłby mi pomóc?
źródło
Odpowiedzi:
Oto kod z mojej aplikacji, aby wysłać obraz na nasz serwer sieciowy:
źródło
Odpowiedź XJones zadziałała jak urok.
Ale nie wspomniał / zadeklarowane zmienne
_params
,BoundaryConstant
irequestURL
. Pomyślałem więc o opublikowaniu tej części jako dodatku do jego postu, aby w przyszłości mogła pomóc innym.Jak wspomniałem Earler, nie jest to odpowiedź sama w sobie, tylko dodatek do postu XJones .
źródło
Do wysyłania obrazu postu http oraz nazwy użytkownika i hasła metodą pocztową
źródło
Użyj AFNetworking; Umieść inne parametry w słowniku parametrów i dołącz dane obrazu w danych formularza.
źródło
Oto moja podobna biblioteka zestawów sieciowych do przesyłania plików w postaci wieloczęściowej:
Użyj pełnomocnika do powiadamiania o postępie przesyłania.
Użyj opcji notificationName, aby powiadomić o zakończeniu żądania.
Użyj kolejki, aby dodać to żądanie do kolejki operacji, aby zostało przetworzone w odpowiednim czasie.
źródło
oto działający szybki kod przetłumaczony z kodu dostarczonego przez @xjones. Wielkie dzięki za pomoc. Twój był jedynym sposobem, który zadziałał dla mnie. Użyłem tej metody, aby wysłać 1 obraz i inny parametr do usługi sieci web utworzonej w asp.net
źródło
Oto wersja Swift. Pamiętaj, że jeśli nie chcesz wysyłać danych formularza, nadal ważne jest, aby wysłać pustą granicę formularza. W szczególności Flask oczekuje danych formularza, po których następują dane pliku, i nie zapełni się
request.files
bez pierwszej granicy.źródło
Prześlij obraz z danymi formularza przy użyciu klasy NSURLConnection w Swift 2.2 :
Uwaga: Zawsze używaj
sendAsynchronousRequest
metody zamiastsendSynchronousRequest
przesyłania / pobierania danych, aby uniknąć blokowania głównego wątku. Tutaj użyłem sendSynchronousRequest tylko do celów testowych.źródło
Mogę pokazać przykład wgrywania pliku .txt na serwer z pomocą
NSMutableURLRequest
iNSURLSessionUploadTask
przy pomocy skryptu php .php Script
źródło
źródło