Ich möchte ein Objekt von einer API mit einer HTTP-Anforderung (z. B. AJAX von jQuery) an eine externe API abrufen. Wie fange ich an? Ich habe bei Herrn Google recherchiert, aber ich kann nichts Hilfreiches finden.
Ich fange an mich zu fragen, ob das überhaupt möglich ist. In diesem Beitrag stellt Laravel 4 eine Post-Anfrage vom Controller an eine externe URL mit Daten , wie es aussieht. Es gibt jedoch weder ein Beispiel noch eine Quelle, in der Dokumentation zu finden ist.
Bitte hilf mir?
Antworten:
Basierend auf einer Antwort auf eine ähnliche Frage hier: https://stackoverflow.com/a/22695523/1412268
Schauen Sie sich Guzzle an
quelle
Wir können das Paket Guzzle in Laravel verwenden. Es ist ein PHP-HTTP-Client zum Senden von HTTP-Anforderungen.
Sie können Guzzle über Composer installieren
Oder Sie können Guzzle als Abhängigkeit in der vorhandenen composer.json Ihres Projekts angeben
Beispielcode in Laravel 5 mit Guzzle wie unten gezeigt,
quelle
// "200"
sollte sein,// 200
weil der zurückgegebene Wert eine Ganzzahl ist.Sie möchten nur eine externe URL aufrufen und die Ergebnisse verwenden? PHP macht dies sofort, wenn es sich um eine einfache GET-Anfrage an etwas handelt, das JSON bedient:
Wenn Sie eine Post-Anfrage stellen möchten, ist es etwas schwieriger, aber es gibt viele Beispiele, wie Sie dies mit Curl tun können.
Ich denke also, die Frage ist: Was genau willst du?
quelle
Aktualisiert am 21. März 2019
GuzzleHttp
Paket hinzufügen mitcomposer require guzzlehttp/guzzle:~6.3.3
Oder Sie können Guzzle als Abhängigkeit in Ihrem Projekt angeben
composer.json
Fügen Sie die folgende Zeile oben in die Klasse ein, in der Sie die API aufrufen
Fügen Sie den folgenden Code für die Anforderung hinzu
quelle
Ab Laravel v7.X enthält das Framework jetzt eine minimale API, die um den Guzzle-HTTP-Client gewickelt ist . Es bietet eine einfache Möglichkeit zu machen get , Post , put , Patch , und löschen Anfragen , die unter Verwendung von HTTP - Client :
Sie können Antworten mithilfe der Methoden verwalten, die von der zurückgegebenen
Illuminate\Http\Client\Response
Instanz bereitgestellt werden .Bitte beachten Sie, dass Sie Guzzle natürlich wie folgt installieren müssen:
Es sind viel mehr hilfreiche Funktionen integriert, und Sie können hier mehr über diese Funktionen erfahren: https://laravel.com/docs/7.x/http-client
Dies ist definitiv jetzt der einfachste Weg, externe API-Aufrufe in Laravel durchzuführen.
quelle
Auf jeden Fall möchten Sie für jedes PHP-Projekt GuzzleHTTP zum Senden von Anforderungen verwenden. Guzzle hat eine sehr schöne Dokumentation, die Sie hier überprüfen können . Ich möchte nur sagen, dass Sie wahrscheinlich die Verwendung der Client-Klasse von Guzzle in einer beliebigen Komponente Ihres Laravel-Projekts (z. B. einem Merkmal) zentralisieren möchten, anstatt Client-Instanzen auf mehreren Controllern und Komponenten von Laravel zu erstellen (ebenso viele Artikel) und Antworten vorschlagen).
Ich habe ein Merkmal erstellt, das Sie verwenden können, mit dem Sie Anforderungen von jeder Komponente Ihres Laravel-Projekts senden können, indem Sie es einfach verwenden und aufrufen
makeRequest
.Beachten Sie, dass dieses Merkmal sogar das Senden von Dateien verarbeiten kann.
Wenn Sie weitere Details zu diesem Merkmal und einige andere Dinge wünschen, um dieses Merkmal in Laravel zu integrieren, lesen Sie diesen Artikel . Wenn Sie sich für dieses Thema interessieren oder wichtige Unterstützung benötigen, können Sie auch an meinem Kurs teilnehmen, der Sie durch den gesamten Prozess führt.
Ich hoffe es hilft euch allen.
Die besten Wünsche :)
quelle
Sie können Httpful verwenden:
Website: http://phphttpclient.com/
Github: https://github.com/nategood/httpful
quelle