我正在使用流明试图通过guzzle设置简单的api请求.
问题是base_uri参数似乎没有在初始化时正确传递new Client().
简化示例:
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'https://siteurl.com/api/v2'
]);
Run Code Online (Sandbox Code Playgroud)
然后通过get调用api
$res = $client->get('orders', [
'query' => [
'status' => 'completed'
]
]);
Run Code Online (Sandbox Code Playgroud)
不起作用.我一直小心不要使用绝对的网址/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 =已完成HTTP/1.1
使用base_uri(版本被剥离):
GET/api/orders?status =已完成HTTP/1.1
Avi*_*ran 27
你需要使用正斜杠/终止你的base_uri
例如,
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'https://siteurl.com/api/v2/'
]);
Run Code Online (Sandbox Code Playgroud)
编辑:请注意,base_uri适用于Guzzle 6+,而以前的版本使用base_url.
| 归档时间: |
|
| 查看次数: |
4516 次 |
| 最近记录: |