2016-08-04 2 views
0

5から6に移行すると、問題が発生し、関連するドキュメントが見つかりません。Guzzle 6でデフォルトのクエリパラメータを設定するにはどうすればよいですか?

guzzle docs here、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

ありがとう!

+1

参照:https://github.com/guzzle/guzzle/issues/1138 – Ayell

+0

グレービー。本があるはずです: "警告信号、あなたがライブラリを工学しているときに"ありがとう。 – Saeven

答えて

0

さて、これまでのところ、これはここで働く:

 $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, 
     ]); 

誰もが、それはあまり不吉に見えるようにする方法を知っている場合、私はあなたに感謝と言うでしょう!

関連する問題