当我运行以下代码(使用最新的Guzzle,v6)时,请求的URL正在从请求中http://example.com/foobar?foo=bar删除boo=far.
$guzzle_http_client = new GuzzleHttp\Client([
'base_uri' => 'http://example.com/',
'query' => [
'foo' => 'bar'
],
]);
$request = new \GuzzleHttp\Psr7\Request('GET', 'foobar?boo=far');
$response = $guzzle_http_client->send($request);
Run Code Online (Sandbox Code Playgroud)
当我运行以下代码时,boo=far作为Client::send()方法的一部分传递,获取请求的URL是http://example.com/foobar?boo=far
$guzzle_http_client = new GuzzleHttp\Client([
'base_uri' => 'http://example.com/',
'query' => [
'foo' => 'bar'
],
]);
$request = new \GuzzleHttp\Psr7\Request('GET', 'foobar');
$response = $guzzle_http_client->send($request, ['query' => ['boo' => 'far']]);
Run Code Online (Sandbox Code Playgroud)
当然,我想要的URL是:
http://example.com/foobar?foo=bar&bar=foo
Run Code Online (Sandbox Code Playgroud)
如何使Guzzle将默认客户端查询字符串参数与特定于请求的参数组合在一起?
小智 9
您可以尝试使用"getConfig"方法获取默认的"查询"选项,然后将它们与新的"查询"选项合并,这里是一个示例:
$client = new GuzzleHttp\Client([
'base_uri' => 'http://example.com/',
'query' => ['foo' => 'bar']
]);
Run Code Online (Sandbox Code Playgroud)
然后您可以轻松发送GET请求:
$client->get('foobar', [
'query' => array_merge(
$client->getConfig('query'),
['bar' => 'foo']
)
]);
Run Code Online (Sandbox Code Playgroud)
您可以在此处找到其他信息请求选项
| 归档时间: |
|
| 查看次数: |
3135 次 |
| 最近记录: |