执行从 Laravel 到外部 API 的 HTTP 请求
我想要的是使用HTTP(例如,jQuery的AJAX)请求从API获取对象到外部API。我该如何开始?我对谷歌先生进行了研究,但我找不到任何帮助。
我开始怀疑这是否可能?在这篇文章中,Laravel 4从控制器到外部URL的发布请求,数据看起来可以完成。但是没有示例也没有任何来源可以找到一些文档。
请帮帮我?
我想要的是使用HTTP(例如,jQuery的AJAX)请求从API获取对象到外部API。我该如何开始?我对谷歌先生进行了研究,但我找不到任何帮助。
我开始怀疑这是否可能?在这篇文章中,Laravel 4从控制器到外部URL的发布请求,数据看起来可以完成。但是没有示例也没有任何来源可以找到一些文档。
请帮帮我?
基于对类似问题的答案:https://stackoverflow.com/a/22695523/1412268
看看咕噜咕噜
$client = new GuzzleHttp\Client();
$res = $client->get('https://api.github.com/user', ['auth' => ['user', 'pass']]);
echo $res->getStatusCode(); // 200
echo $res->getBody(); // { "type": "User", ....
我们可以在Laravel中使用pack Guzzle,它是一个PHP HTTP客户端来发送HTTP请求。
您可以通过作曲家安装Guzzle
composer require guzzlehttp/guzzle:~6.0
或者,您可以将 Guzzle 指定为项目现有 composer.json 中的依赖项
{
"require": {
"guzzlehttp/guzzle": "~6.0"
}
}
使用 Guzzle 的 laravel 5 中的示例代码如下所示,
use GuzzleHttp\Client;
class yourController extends Controller {
public function saveApiData()
{
$client = new Client();
$res = $client->request('POST', 'https://url_to_the_api', [
'form_params' => [
'client_id' => 'test_id',
'secret' => 'test_secret',
]
]);
echo $res->getStatusCode();
// 200
echo $res->getHeader('content-type');
// 'application/json; charset=utf8'
echo $res->getBody();
// {"type":"User"...'
}