2016-06-26 2 views
1

Мне нужно сделать HTTP-запрос в контроллере Laravel для получения данных по URL-адресу. Удаленный URL-адрес возвращает формат данных JSON. Что использовать для HTTP-запросов в Laravel, кроме стандартного PHP Curl?Что использовать для HTTP-запросов в Laravel?

+3

https://github.com/guzzle/guzzle –

+0

Вы имеете в виду получить некоторые опубликованные значения из URL? – Sachith

+0

Да, я имею в виду, что – Huligan

ответ

1

Guzzle - популярная кросс-каркас для совершения HTTP-вызовов внешним службам. Laravel уже включил его в зависимость от своих служб интеграции почты (Sparkpost, Mailgun, Mandrill).

Редактировать composer.json и в require раздел добавить "guzzlehttp/guzzle": "~6" после laravel/рамки линии.

composer update

В верхней части контроллера добавить use GuzzleHttp\Client;

Затем в методе вы можете использовать его как это:

$client = new \GuzzleHttp\Client(); 
$res = $client->request('GET', 'https://api.github.com/user', [ 
    'auth' => ['user', 'pass'] 
]); 
echo $res->getStatusCode(); 
// 200 
echo $res->getHeaderLine('content-type'); 
// 'application/json; charset=utf8' 
echo $res->getBody(); 
// {"type":"User"...' 

Существует также a Laracast on using Guzzle with Laravel.

+0

PHP не видит: '$ client = new GuzzleHttp \ Client();' – Huligan

+0

Протестировал этот и обновленный ответ, включив композитор.json. Также добавлена ​​косая черта к началу строки создания. – Ben

Смежные вопросы