Выполнение HTTP-запросов FROM Laravel во внешний API

Я хочу получить объект из API с запросом HTTP (например, JQuery AJAX) на внешний api. Как начать? Я занимался исследованиями г-на Google, но я не могу найти ничего полезного.

Я начинаю удивляться, возможно ли это? В этом сообщении Laravel 4 делает запрос на отправку с контроллера на внешний URL с данными, похоже, что это можно сделать. Но нет ни одного примера, ни источника, где можно найти какую-либо документацию.

Пожалуйста, помогите мне?

На основании ответа на аналогичный вопрос: https://stackoverflow.com/a/22695523/1412268

Взгляните на 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", .... 

Мы можем использовать пакет Guzzle в Laravel, это HTTP-клиент PHP для отправки HTTP-запросов.

Вы можете установить Guzzle через композитор

 composer require guzzlehttp/guzzle:~6.0 

Или вы можете указать Guzzle как зависимость от существующего в вашем проекте композитора.json

 { "require": { "guzzlehttp/guzzle": "~6.0" } } 

Пример кода в laravel 5 с использованием Guzzle, как показано ниже,

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

Вы просто хотите вызвать внешний URL-адрес и использовать результаты? PHP делает это из коробки, если мы говорим о простом запросе GET к чему-то, обслуживающему JSON:

 $json = json_decode(file_get_contents('http://host.com/api/stuff/1'), true); 

Если вы хотите сделать почтовый запрос, это немного сложнее, но есть множество примеров, как сделать это с помощью curl.

Поэтому я думаю, что вопрос: что именно вы хотите?

Если вам просто нужно запустить запрос на внешний API, вы можете использовать класс Laravel Request следующим образом (предположим, что вы используете GET-запрос)

 $request = Request::create('http://your-api.com', 'GET'); 

Но если вам нужно получить содержание ответа, вы можете использовать пакет Laracurl следующим образом:

 $response = Laracurl::get('http://your-api.com'); 

Вы можете использовать Httpful:

Веб-сайт: http://phphttpclient.com/

Github: https://github.com/nategood/httpful

Вы можете делать запросы с использованием Laravel и без внешних пакетов

 $request = \Illuminate\Http\Request::create('http://your-api.com', 'POST', ['param1' => 'value1', 'param2' => 'value2']); 

Функция запроса предоставляется, поскольку Laravel опирается на пакет запроса Symfony.