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,您的代码将有效。
有了这个代码,
$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,您的代码将有效。