Hochladen eines Bildes und von Parametern mit multipart / form-data in Swift

8

[WARNUNG]
Wie ich sehe, wird diese Frage mehr beachtet als sie sollte, Ich möchte Ihnen sagen, dass Sie keinen der folgenden Codes verwenden sollen.
Zu der Zeit, als ich die Frage stellte, hatte Swift weniger als ein Jahr, bewegte sich schnell, die meisten Bibliotheken waren nicht Swift-freundlich und instabil. Ich empfehle Ihnen dringend, Alamofire oder eine andere Bibliothek für diese Art von Aufgabe zu verwenden. Aber tu es nicht selbst.
[/ WARNUNG]

Ich möchte ein Bild auf einen Drupal-Endpunkt hochladen.

Das Problem, das ich habe, ist, dass ich eine HTTP 200 OK-Antwort mit dem Inhaltstyp text / html erhalte. In der HTML-Antwort gibt es eine klare Nachricht, dass der Knoten korrekt erstellt wurde. Aber auf der Serverseite ist das Bild nicht mit dem Knoten verbunden.

Ich erwarte auch nicht text / html, sondern application / json, wie ich es im Accept-Header spezifiziere.

Es funktioniert bereits in der Android App mit Android Rest Template. Hier ist der Code für die Referenz:

%Vor%

Ich weiß, ich überprüfe nicht die Antwort in Android ( Void.class ), aber alles funktioniert gut und das Bild ist an den Knoten auf der Serverseite angeschlossen.

Jetzt auf iOS in Swift habe ich mehrere Dinge ausprobiert.

Mit AFNetworking:

%Vor%

Manuell mit Informationen aus anderen stackoverflow-Fragen:

%Vor%

Mit SRWebClient:

%Vor%

Bitte rette mich! ;-) Ich habe so viele Dinge ausprobiert, dass es funktioniert, dass ich nicht mehr sehen kann, wenn ich etwas falsch mache. Es scheint in Ordnung für mich. Der einzige Unterschied, den ich sehen kann, ist, dass ich das Bild nicht auf dem Dateisystem ablege, sondern direkt die binären Daten sende, die am Ende dasselbe sind.

Hier ist ein Bild der Anfrage in Postman erstellt (Arbeits-und Empfangs-JSON)

[EDIT] Wenn es hier jemandem helfen kann, ist der korrekte Code des falschen Teils der obigen manuellen Anfrage:

%Vor%     
florian 30.04.2015, 19:11
quelle

2 Antworten

2

Ich weiß nicht, ob das für das, was Sie versuchen, funktioniert, aber wir verwenden dies, um Bilder hochzuladen. Der Hauptunterschied besteht darin, filename und Content-type zu verwenden:

%Vor%     
rmp 30.04.2015, 21:35
quelle
1

Für jede schnelle 2.0 JSON Anfrage UND PHP Code: - (Handbuch)

%Vor%

PHP-Code: -

%Vor%     
Chathuranga Silva 29.03.2016 05:34
quelle

Tags und Links