Wie durchführen einer externen Anforderung in Kohana 3?
Habe ich immer cURL verwendet für diese Art von Sachen, aber dieser Artikel gab mir zu denken, ich könnte eine Anforderung für eine andere Seite problemlos über das Request-Objekt in Kohana 3.
$url = 'http://www.example.com';
$update = Request::factory($url);
$update->method = 'POST';
$update->post = array(
'key' => 'value'
);
$update->execute();
echo $update->response;
Jedoch bekomme ich die Fehlermeldung
Accessing static property Request::$method as non static
Daraus kann ich davon ausgehen, es bedeutet, dass die Methode Methode ist statisch, aber das hilft mir nicht viel. Ich auch kopiert und eingefügt, das Beispiel aus diesem Artikel, und es warf den gleichen Fehler.
Grundsätzlich, ich versuche, die POST an eine neue Seite auf einem externen server, und tun es Kohana Weg.
So, mache ich das richtig, oder sollte ich nur verwenden, cURL (oder file_get_contents()
mit Kontext)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß nicht, ob dies war ursprünglich geschrieben, wenn die OP wurde mit Kohana 3.0, aber die major-release Kohana 3.1 hat diese deutlich leichter zu tun. Die Fernbedienung::get() ist veraltet (und war nicht so gut, um mit zu beginnen). Um dies zu erreichen in Kohana 3.1 ist eine einfache Sache, und Sie ziemlich viel hatte es:
Zog ich einige Sachen rund um die Vorteile der lapidare der Verkettung syntax. Mit der Antwort können Sie den response-code als auch. Für weitere Informationen Lesen Sie die 3.1-API-docs für Anfrage und Request_Client_External (die Griffe dieser externen, also nicht in-app-Anforderungen.
response()
Funktion - sonst bist du doch der Umgang mit dem Request-Objekt. Sowohl die Anfrage-Klasse und die Reaktion der Klasse haben einen Körper, der Sie Lesen kann. Diebody()
einer Nachfrage ist genau das - die Anfrage Körper. Meist wird jede form von Daten, die kam, etc. Nicht das Verhalten, das Sie wollen, und würde es sicherlich komisch sein, um wieder genau das, was Sie gesendet!execute()
kehrte eine Anfrage bekam ich verwirrt. Dieexecute()
Methode nicht tatsächlich eine Antwort zurück-Objekt. Ich habe aktualisiert die Antwort entsprechend 🙂Lesen Sie einfach das unten
Siehe auch diese Diskussion.
Das Request-Objekt wird verwendet, um Seiten innerhalb Ihrer Anwendung. Sie können es nicht verwenden für externe URLs. Oh, und Sie nicht haben, um curl verwenden, Sie können es einfacher machen, indem dies zu tun:
POST
ich möchte senden aber.