从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

上一篇: Doing HTTP requests FROM Laravel to an external API

下一篇: What does sprintf stand for?