从Laravel执行HTTP请求到外部API?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (38)

我想要的是从具有HTTP(例如,jQuery的AJAX)请求的API获取对象到外部API。怎么做?

提问于
用户回答回答于

看看Guzzle

$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中使用Guzzle包,它是一个发送HTTP请求的PHP HTTP客户端。

可以通过composer安装Guzzle

composer require guzzlehttp/guzzle:~6.0

或者可以在项目现有的composer.json中将Guzzle指定为依赖项

{
   "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"...'
}

扫码关注云+社区