Ich versuche, eine HTTP-Anforderung in Swift auszuführen, um 2 Parameter an eine URL zu senden.
Beispiel:
Verknüpfung: www.thisismylink.com/postName.php
Parameter:
id = 13
name = Jack
Was ist der einfachste Weg, das zu tun?
Ich möchte nicht einmal die Antwort lesen. Ich möchte das nur senden, um Änderungen an meiner Datenbank über eine PHP-Datei vorzunehmen.
post
swift
parameters
http-post
httprequest
angeant
quelle
quelle
Antworten:
In Swift 3 und höher können Sie:
Wo:
Dies prüft sowohl auf grundlegende Netzwerkfehler als auch auf HTTP-Fehler auf hoher Ebene. Dieser Prozentsatz entgeht auch den Parametern der Abfrage.
Beachten Sie, dass ich ein
name
von verwendet habeJack & Jill
, um das richtigex-www-form-urlencoded
Ergebnis von zu veranschaulichenname=Jack%20%26%20Jill
, das "Prozent codiert" ist (dh das Leerzeichen wird durch ersetzt%20
und das&
im Wert wird durch ersetzt%26
).Siehe vorherige Überarbeitung dieser Antwort für die Swift 2-Wiedergabe.
quelle
POST
Anfrage stellen möchten , können Sie die oben genannten verwenden.$_POST
und Dateinamen zu zeichnen , würde ich dies auf etwas Einfacheres reduzieren: Das PHP-Skript wird überhaupt nicht ausgeführt, wenn Sie die URL nicht korrekt erhalten. Es ist jedoch nicht immer der Fall, dass Sie den Dateinamen angeben müssen (z. B. führt der Server möglicherweise ein URL-Routing durch oder hat Standarddateinamen). In diesem Fall gab uns das OP eine URL mit einem Dateinamen, sodass ich einfach dieselbe URL wie er verwendete.URLSession
in dieser Hinsicht. Alle Netzwerk-APIs sind von Natur aus asynchron und sollten es auch sein. Wenn Sie nach anderen Möglichkeiten suchen, mit asynchronen Anforderungen umzugehen, können Sie diese (entwederURLSession
Anforderungen oder Alamofire-Anforderungen) in eine asynchrone, benutzerdefinierteOperation
Unterklasse einschließen . Oder Sie können eine Versprechensbibliothek wie PromiseKit verwenden.Swift 4 und höher
quelle
Für alle, die nach einer sauberen Möglichkeit suchen, eine POST-Anfrage in Swift 5 zu codieren.
Sie müssen sich nicht mit dem manuellen Hinzufügen einer prozentualen Codierung befassen. Verwenden Sie
URLComponents
diese Option , um eine GET-Anforderungs-URL zu erstellen. Verwenden Sie dann diequery
Eigenschaft dieser URL, um die prozentuale Escape-Abfragezeichenfolge zu erhalten.Das
query
wird ein richtig maskierter String sein:Jetzt können Sie eine Anfrage erstellen und die Abfrage als HTTPBody verwenden:
Jetzt können Sie die Anfrage senden.
quelle
Hier ist die Methode, die ich in meiner Protokollierungsbibliothek verwendet habe: https://github.com/goktugyil/QorumLogs
Diese Methode füllt HTML-Formulare in Google Forms aus.
quelle
application/x-www-form-urlencoded
stellst du ein?quelle
quelle
Alle Antworten hier verwenden JSON-Objekte. Dies gab uns Probleme mit den
$this->input->post()
Methoden unserer Codeigniter-Steuerungen. DerCI_Controller
kann JSON nicht direkt lesen. Wir haben diese Methode verwendet, um es OHNE JSON zu tunJetzt wird Ihre CI_Controller Lage zu bekommen ,
param1
undparam2
mit$this->input->post('param1')
und$this->input->post('param2')
quelle