5

5 から 6 への移行中に問題が発生し、関連するドキュメントが見つかりません。

ここの Guzzle ドキュメント、http://guzzle.readthedocs.io/en/latest/quickstart.html#creating-a-client、「任意の数のデフォルト要求オプション」を追加できるサイト。

すべてのリクエストで「foo=bar」を送信したい。例えば:

$client = new Client([
    'base_uri' => 'http://google.com',
]);

$client->get('this/that.json', [
    'query' => [ 'a' => 'b' ],
]);

これにより、 http://google.com/this/that.json?a=bで GET が生成されます

次の結果が得られるようにクライアントの構成を変更するにはどうすればよいですか。

http://google.com/this/that.json?foo=bar&a=b

ご協力いただきありがとうございます!

4

3 に答える 3

7

さて、これまでのところ、これはここで機能します:

        $extraParams = [
            'a' => $config['a'],
            'b' => $config['b'],
        ];

        $handler = HandlerStack::create();
        $handler->push(Middleware::mapRequest(function (RequestInterface $request) use ($extraParams) {

            $uri  = $request->getUri();
            $uri .= ( $uri ? '&' : '' );
            $uri .= http_build_query( $extraParams );

            return new Request(
                $request->getMethod(),
                $uri,
                $request->getHeaders(),
                $request->getBody(),
                $request->getProtocolVersion()
            );
        }));

        $this->client = new Client([
            'base_uri' => $url,
            'handler' => $handler,
            'exceptions' => false,
        ]);

誰かがそれを不吉に見えるようにする方法を知っているなら、私はありがとうと言うでしょう!

于 2016-08-04T03:48:53.977 に答える