我正在使用 lumen 尝试通过 guzzle 设置简单的 api 请求。
问题是 base_uri 参数似乎没有在初始new Client()
.
简化示例:
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'https://siteurl.com/api/v2'
]);
然后通过get调用api
$res = $client->get('orders', [
'query' => [
'status' => 'completed'
]
]);
不起作用。我一直小心不要使用绝对网址,例如/orders
. 如果我完全绕过 base_uri 并将其添加到 get 方法$client->get('https://siteurl.com/api/v2/orders')
中,它就可以工作。
我正在使用:“laravel/lumen-framework”:“5.0.*”,“guzzlehttp/guzzle”:“^6.0”
*跟进:
我添加了调试标志,以便可以比较标头,明显的区别在于获取请求行。
get方法中的绝对url(绕过base_uri):
GET /api/v2/orders?status=completed HTTP/1.1
使用 base_uri (版本被剥离):
GET /api/orders?status=completed HTTP/1.1