Laravel – запрос Guzzle / cURL 6: не удалось разрешить хост

Я пытаюсь сделать API-запрос API Github только для тестирования. Я установил последнюю версию Guzzle («жмет / жрать»: «^ 3.9») на моем Laravel 5.1 APP. В моих routes.php меня есть следующий код:

 Route::get('guzzle/{username}', function($username) { $client = new Client([ 'base_uri' => 'https://api.github.com/users/', ]); $response = $client->get("/users/$username"); dd($response); }); 

Если я сейчас перейду на URL-адрес domain.dev/github/kayyyy, я получу ошибку cURL error 6: Could not resolve host: users .

Почему я получаю эту ошибку?

Если я посещаю https://api.github.com/users/kayyyy, я могу увидеть выход json .

Я также использую Homestead / Vagrant, может быть, это проблема, которую не может решить хозяин?

EDIT Если я попробую это без base_uri, это сработает.

 Route::get('guzzle/{username}', function($username) { $client = new GuzzleHttp\Client(); $response = $client->get("https://api.github.com/users/$username"); dd($response); }); 

Почему вы вызываете $client->get->()->send() ? В частности, почему вы цепляете метод send () в конце? Документация не добавляет метод send() при демонстрации того, что похоже на одно и то же действие:

http://guzzle.readthedocs.org/en/latest/quickstart.html#creating-a-client

Кроме того, рассмотрели ли вы последствия этого заявления на вышеприведенной странице руководства?

Когда относительный URI предоставляется клиенту, клиент будет комбинировать базовый URI с относительным URI, используя правила, описанные в RFC 3986, раздел 2.

Фактически переменная интерполяция невозможна в одинарных кавычках. Это означает, что вы в настоящее время вызываете users/$username а переменная $username не заменяется ее значением.

Чтобы получить его, вы должны использовать его одним из следующих способов:

 $response = $client->get("users/$username")->send(); $response = $client->get('users/' . $username)->send(); 

Я лично предпочитаю второй, так как предполагается, что он быстрее.

Хорошо, я решил, глупая ошибка. Я использовал new Client .

И это должен быть, конечно, new GuzzleHttp\Client

Поскольку это просто для тестирования на моих routes.php я не routes.php Namespace

Спасибо за вашу помощь.