从Laravel执行HTTP请求到外部API
我想要的是从具有HTTP(例如,jQuery的AJAX)请求的API获取对象到外部API。 我如何开始? 我对Google先生进行了研究,但找不到任何帮助。
我开始怀疑这是甚至可能的吗? 在这篇文章中,Laravel 4用控制器向外部网址发送请求,看起来好像可以完成。 但是没有例子,也没有任何来源可以找到一些文档。
请帮助我?
根据类似问题的答案在这里:https://stackoverflow.com/a/22695523/1412268
看看Guzzle
$client = new GuzzleHttpClient();
$res = $client->get('https://api.github.com/user', ['auth' => ['user', 'pass']]);
echo $res->getStatusCode(); // 200
echo $res->getBody(); // { "type": "User", ....
我们可以在Laravel中使用Guzzle包,它是一个发送HTTP请求的PHP HTTP客户端。
您可以通过作曲家安装Guzzle
composer require guzzlehttp/guzzle:~6.0
或者您可以在项目现有的composer.json中将Guzzle指定为依赖项
{
"require": {
"guzzlehttp/guzzle": "~6.0"
}
}
如下所示,使用Guzzle的laravel 5中的示例代码,
use GuzzleHttpClient;
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"...'
}
你只是想调用一个外部URL并使用结果? PHP开箱即用,如果我们正在讨论一个简单的GET请求来提供JSON服务:
$json = json_decode(file_get_contents('http://host.com/api/stuff/1'), true);
如果你想做一个post请求,这有点困难,但是有大量的例子说明如何用curl来做到这一点。
所以我想这个问题是; 你想要什么?
链接地址: http://www.djcxy.com/p/58881.html