2016-07-13 9 views
0

GuzzleHttp\Psr7\Requestオブジェクトに要求パラメータをカプセル化することはできますか?リクエストオブジェクトにリクエストパラメータをカプセル化することは可能ですか?

リクエストと一緒にClient::send()メソッドに渡すのではなく、完全に構成されたリクエストオブジェクトをリクエストパラメータで渡したいと思います。

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

私はform_paramsをリクエストオブジェクトに保存したいと思います。出来ますか?

答えて

1

Requestクラスコンストラクタは、パラメータを送信するリクエストとして引数を受け取りません。あなただけの要求headersを渡すことがあります。

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

それはどちらかRequestオブジェクトへのあなたのPOSTパラメータを取得し、添付する任意の他の方法を提供していません。したがって、答えはいいえです。form_paramsをリクエストオブジェクトに格納することはできません。

+0

これは設計上の欠陥ではありませんか?限り、私は 'form_params'と他の多くのリクエストオプションが要求のプロパティであり、その中にカプセル化されるべきであることがわかります。 – Kolyunya

+0

あなたは正しいとはいえ、リクエストごとにヘッダを設定できるので、Guzzleは複数のリクエストに対して繰り返すことができる静的な情報*のようなHTTPヘッダーを見ています。したがって、 'Request'の1つのインスタンスでは、同じヘッダを何度も何度も渡すことなく、複数のリクエストを送ることができます。代わりに、POSTフィールドを*動的情報*と見なします。この情報は、送信される間に要求にマージする必要があります。だから、別々の 'Client'の' send() 'メソッド呼び出しでそれを行う必要があります。まあ、私は合法だと思う。 @Kolyunya – revo

関連する問題