Laravel 如何在curl中为-d数据构建Guzzle GET请求
我正在尝试使用Laravel5.5中的Guzzle访问APILaravel 如何在curl中为-d数据构建Guzzle GET请求,laravel,curl,laravel-5,guzzle,guzzle6,Laravel,Curl,Laravel 5,Guzzle,Guzzle6,我正在尝试使用Laravel5.5中的Guzzle访问API curl中的命令如下所示: curl http://apiurl.com/getRequest -d "api_key=token_value" 现在使用Guzzle,我开始编写如下代码: $client = new Client(['base_uri' => 'http://apiurl.com/']); $response = $client->request('GET', 'getRequest', [
curl
中的命令如下所示:
curl http://apiurl.com/getRequest -d "api_key=token_value"
现在使用Guzzle,我开始编写如下代码:
$client = new Client(['base_uri' => 'http://apiurl.com/']);
$response = $client->request('GET', 'getRequest', [
'headers' => [
'api_key' => ['token_value']
]
]);
var_dump($response->getStatusCode());
var_dump(json_decode($response->getBody(), true));
现在我可以将statusCode
看作200
和getBody
看作Null
。但是当我使用curl
使用相同的请求时,我就能够看到完整的数据
有人能解决吗?在比较
curl
和Guzzle
之间的差异时,我强烈建议使用(curl
)和请求选项(Guzzle
)。详细输出允许对每个软件正在传输的请求进行可视比较
curl
手册页指出,并发送POST请求
(HTTP)将POST请求中的指定数据发送到HTTP服务器,
与用户填写HTML时浏览器所做的相同
表单并按下提交按钮。这将导致curl通过
使用内容类型将数据发送到服务器
application/x-www-form-urlencoded
需要进行一对更改,才能使用Guzzle
发送所需的请求:
$response = $client->request('POST', $uri, [
'form_params' => [
'api_key' => $key_value,
],
]);
第一个更改是正在发送的请求类型(GET=>POST)。第二个是form_params
的用法。请求选项用于发送应用程序/x-www-form-urlencoded
POST请求