Guzzle:错误的查询字符串格式

Guzzle : Bad query string formatting

有了这个代码,

$client = new \GuzzleHttp\Client(['base_uri'=> 'http://example.com']);
try{
     $data = ['params1'=>'value1', 'params2'=> 'value2'];
     $res = $client->request('GET', '/', ['query'=> $data]);
}catch(\GuzzleHttp\Exception\RequestException $e)
{
      echo $e->getRequest()->getUri();
}

这是输出:

 http://example.com/?params1=value1params2=value2

您可以在请求 uri 的字符串查询中看到缺少 & 符号!

如何解决这个问题?

应该这样做

$client = new \GuzzleHttp\Client(['base_uri'=> 'http://example.com']);
try{
    $data = ['params1'=>'value1', 'params2'=> 'value2'];
    $res = $client->request('GET', '/', ['query'=> http_build_query($data)]);
}catch(\GuzzleHttp\Exception\RequestException $e)
{
    echo $e->getRequest()->getUri();
}

这是 6.0.1 version 中修复的错误。请使用稳定版本的 guzzle,您的代码将有效。