Guzzle:查询字符串格式错误

问题描述 投票:0回答:2

有了这段代码,

$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的字符串查询中看到没有&符号!

怎么解决这个问题?

php guzzle guzzle6
2个回答
0
投票

这应该做到这一点

$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();
}

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.