Laravel - Guzzle请求/ cURL错误6:无法解析主机

时间:2015-08-10 15:21:43

标签: php laravel curl guzzle

我尝试向Github API发出API请求以进行测试。我在Laravel 5.1 APP上安装了最新的Guzzle版本(“guzzle / guzzle”:“^ 3.9”)。 在我的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,这可能是主机无法解决的问题吗?

修改 如果我在没有base_uri的情况下尝试这个,那就可以了。

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

4 个答案:

答案 0 :(得分:4)

你为什么打电话给$client->get->()->send()?特别是,为什么要在最后链接send()方法?在演示似乎相同的操作时,文档不附加send()方法:

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

另外,您是否考虑过本声明对上述手册页的影响?

  

当向客户端提供相对URI时,客户端将使用RFC 3986第2节中描述的规则将基URI与相对URI组合。

答案 1 :(得分:3)

实际上,单引号内不可能进行变量插值。这意味着您当前正在调用User-Agent: * Disallow: /cat1/ Disallow: /cat2/ Disallow: /cat3/ Allow: /assets/*.js Allow: /assets/*.css User-Agent: Googlebot Allow: /assets/*.js Allow: /assets/*.css 并且users/$username变量未被其值替换。

为了获得它,您应该通过以下方式之一使用它:

$username

我个人更喜欢第二个,因为它被认为更快。

答案 2 :(得分:3)

好的,我解决了它,我的愚蠢错误。 我用了new Client

当然应该是new GuzzleHttp\Client

因为它仅用于在我的routes.php进行测试,所以我没有Namespace

感谢大家的帮助。

答案 3 :(得分:0)

感谢Paratron https://github.com/googleapis/google-api-php-client/issues/1184#issuecomment-355295789 就我而言,在cakephp 3.8和docker 19.03.5上,由于某些网络问题,我遇到了curl错误。我重新启动了Cake-Server泊坞窗容器,它的工作就像一个魅力。

相关问题