2016-07-13 18 views
0

Ist es möglich, Anforderungsparameter in GuzzleHttp\Psr7\Request Objekt einzukapseln?Ist es möglich, Anfrageparameter im Anfrageobjekt einzukapseln?

Ich möchte ein vollständig konfiguriertes Anfrageobjekt mit Anfrageparametern übergeben, anstatt sie zusammen mit der Anfrage an die Methode Client::send() zu übergeben.

$request = new Reques('POST', $url); 
$client->send($request, ['form_params' => $parameters]); 

Ich möchte die form_params im Request-Objekt speichern. Ist es möglich?

Antwort

1

Request Klassenkonstruktor erhält kein Argument als Parameter zum Senden von Anforderungen. Sie können nur Anfrage passieren headers:

public function __construct(
    $method, 
    $uri, 
    array $headers = [], 
    $body = null, 
    $version = '1.1' 
) 

Es spielt keine anderen Methoden, um Ihre POST-Parameter an die Request Objekt entweder zu erhalten bieten und zu befestigen. Die Antwort lautet also Nein, Sie können das form_params nicht im Anfrageobjekt speichern.

+0

Ist das nicht ein Konstruktionsfehler? Soweit ich sehen kann, sind 'form_params' und viele andere Anfrageoptionen Eigenschaften der Anfrage und sollten darin eingekapselt sein. – Kolyunya

+0

Irgendwie hast du recht, aber da du in der Lage bist, Header für die Instantiierung einer 'Anfrage' zu ​​setzen, bedeutet das, dass Guzzle HTTP-Header wie eine * statische Information * sieht, die für mehrere Anfragen wiederholt werden kann. Mit einer Instanz von "Request" können Sie also mehrere Anfragen senden, ohne dass Sie immer wieder die gleichen Header übergeben müssen. Im Gegenzug sieht es POST-Felder als * dynamische Informationen *, die mit der Anfrage zusammengeführt werden sollen, während sie gesendet wird. Es muss also bei jedem Aufruf des Methodenaufrufs send() 'des Clients ausgeführt werden. Nun, ich sehe es legitim. @Kolyunya – revo