Wie sende ich eine POST-Anfrage mit PHP?
Eigentlich will ich um die Inhalte zu Lesen, die nach der Suchanfrage, wenn es fertig ist. Das problem ist, dass die URL akzeptiert nur POST
Methoden, und es führt zu keiner Aktion mit GET
Methode...
Ich Lesen müssen, um alle Inhalte mit Hilfe von domdocument
oder file_get_contents()
. Gibt es eine Methode, lassen Sie mich senden von Parametern mit POST
- Methode und Lesen Sie dann die Inhalte über PHP
?
InformationsquelleAutor der Frage Fred Tanrikut | 2011-04-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
CURL-weniger-Methode mit PHP5:
Siehe PHP manual für weitere Informationen über die Methode und wie Sie Header hinzufügen, zum Beispiel:
InformationsquelleAutor der Antwort dbau
Ich habe versucht dies und es ist in Ordnung... als ich rquired..
InformationsquelleAutor der Antwort Fred Tanrikut
Ich folgende Funktion verwenden, um post-Daten über curl. $data ist ein array von Feldern zu posten (wird korrekt codiert http_build_query). Die Daten codiert unter Verwendung von application/x-www-form-urlencoded.
@Edward erwähnt, dass http_build_query kann verzichtet werden, da curl korrekt encode-array übergeben CURLOPT_POSTFIELDS parameter, aber darauf hingewiesen, dass in diesem Fall die Daten werden verschlüsselt, wobei multipart/form-data.
Ich diese Funktion mit APIs, erwarten kodierten Daten unter Verwendung von application/x-www-form-urlencoded. Das ist, warum ich verwenden http_build_query().
InformationsquelleAutor der Antwort Dima L.
Empfehle ich Ihnen die Nutzung der open-source-Paket saufen , ist komplett unit getestet und verwendet die neuesten Codierungsverfahren.
Installieren Saufen
Gehen Sie auf den Befehl Linie in Ihrem Projekt-Ordner und geben Sie folgenden Befehl ein (vorausgesetzt, Sie haben bereits den Paket-manager Komponist installiert). Wenn Sie Hilfe benötigen, wie zu installieren, Komponist, sollten Sie hier suchen.
Mit Saufen, senden Sie eine POST-Anforderung
Die Nutzung Saufen ist sehr geradlinig, wie es verwendet eine Licht-Gewicht-Objekt-orientierte API:
InformationsquelleAutor der Antwort Andreas
Gibt es eine andere CURL Methode, wenn Sie gehen, die Art und Weise.
Dies ist ziemlich einfach, sobald Sie Ihren Kopf um die Art und Weise der PHP-curl-Erweiterung arbeiten, die Kombination verschiedener flags, mit setopt () - Aufrufe. In diesem Beispiel habe ich eine variable "$xml " enthält die XML habe ich bereit zum senden - ich werde post die Inhalte, die zum Beispiel die test-Methode.
Wir zuerst initialisiert die Verbindung), dann setzen wir einige Optionen mit setopt(). Diesen sagen PHP, dass wir eine post-Anforderung, und senden wir einige Daten, die die Daten liefern. Die CURLOPT_RETURNTRANSFER flag erzählt curl geben Sie uns die Ausgabe als Rückgabewert von curl_exec eher als Ausgabe. Dann machen wir den Anruf und die Verbindung schließen - das Ergebnis ist in $response.
InformationsquelleAutor der Antwort Josip Ivic
Wenn du durch Zufall mit WordPress Ihre app entwickeln (es ist eigentlich ein bequemer Weg, um die Autorisierung, info-Seiten etc., auch für sehr einfache Sachen), können Sie den folgenden Codeausschnitt:
Es nutzt verschiedene Methoden, um die die eigentliche HTTP-Anforderung, je nachdem, was verfügbar ist auf dem web-server. Für mehr details, siehe die HTTP-API-Dokumentation.
Wenn Sie nicht wollen, zu entwickeln, ein custom-theme oder-plugin starten Sie die WordPress-engine, können Sie nur die folgenden in einer isolierten PHP-Datei im wordpress-root:
Er nicht irgendein Thema oder Ausgabe alle HTML -, nur die hacken Weg mit dem WordPress-APIs!
InformationsquelleAutor der Antwort
Ich möchte noch hinzufügen, einige Gedanken über die curl-basiert Antwort von Fred Tanrikut. Ich weiß, die meisten von Ihnen sind bereits in der SCHRIFTLICHEN Antworten, aber ich denke, es ist eine gute Idee, um zu zeigen, eine Antwort, die gehören alle zusammen.
Hier ist die Klasse, die ich schrieb, um HTTP-GET/POST/PUT/DELETE requests basierend auf Rollen, Bezug nur über den Antwort-body:
Verbesserungen
Siehe: http://php.net/en/manual/function.curl-exec.php
Beispiel der Nutzung
BEKOMMEN
POST
SETZEN
LÖSCHEN
Testen
Sie können auch einige Coole service-tests durch die Nutzung dieser einfachen Klasse.
InformationsquelleAutor der Antwort mwatzer
Ich war auf der Suche für ein ähnliches problem und fanden eine bessere Methode, dies zu tun. Also hier geht es.
Können Sie einfach fügen Sie die folgende Zeile an der Umleitung Seite (sagen page1.php).
Brauche ich das umleiten von POST-requests für REST API-Aufrufe. Diese Lösung ist in der Lage, redirect mit post-Daten sowie benutzerdefinierte header-Werte.
Hier ist die Referenz-link.
InformationsquelleAutor der Antwort Arindam Nayak
Gibt es eine weitere, die Sie verwenden können,
Klicken Sie hier für details
InformationsquelleAutor der Antwort Code
Andere alternative der curl-weniger - Methode vor ist die Verwendung der nativen stream Funktionen:
stream_context_create()
:stream_get_contents()
:Ein POST-Funktion mit dieser können Sie einfach wie folgt sein:
InformationsquelleAutor der Antwort CPHPython
Versuchen PEAR HTTP_Request2 Paket zu senden POST-Anfragen. Alternativ können Sie unter Verwendung der PHP-curl Funktionen, oder verwenden Sie eine PHP -stream Kontext.
HTTP_Request2 macht es auch möglich, zu verhöhnen, die server, so können Sie unit-testen Sie Ihren code leicht
InformationsquelleAutor der Antwort cweiske
Flexibler Funktion. Dies kann die Arbeit mit oder ohne LOCKEN.
Verwendung:
InformationsquelleAutor der Antwort Karlo Kokkak