当前位置: 首页 > 知识库问答 >
问题:

拉拉维尔 - 咕噜咕噜请求/ cURL错误6:无法解析主机

尤祖鹤
2023-03-14

我试着向Github API发出一个API请求,只是为了测试。我在我的Laravel 5.1应用程序上安装了最新的Guzzle版本(“guzzle/guzzle”:“^3.9”)。在我的< code>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);
});

如果我现在访问URLdomain.dev/github/kayyyy我得到错误cURL错误6:无法解析主机:用户

为什么我会收到此错误?

如果我访问https://api.github.com/users/kayyyy,我可以看到< code>json输出。

我也在使用家园/流浪者,这可能是一个主机无法解决的问题吗?

如果我在没有base_uri的情况下尝试这样做,请进行编辑。

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

共有3个答案

梁浩涆
2023-03-14
匿名用户

好吧,我解决了,愚蠢的错误。我使用了客户端

当然应该是新的GuzzleHttp\Client

因为它只是为了在我的路线中进行测试。phpi没有Namespace

谢谢大家的帮助。

萧嘉禧
2023-03-14

实际上,在单引号中不可能进行变量插值。这意味着您当前正在调用user/$username并且$username变量不会被其值替换。

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

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

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

章学义
2023-03-14

你为什么打电话给$client-

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

此外,您是否考虑了上述手册页面中该声明的含义?

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

 类似资料:
  • 看起来 grpc 先决条件是 java 7 或更高版本。 安装grpc时出现异常。Java . lang . unsupportedclassversionerror:com/Google/proto buf/grad le/proto buf plugin:不支持的major.minor版本51.0 我有java 6在本地运行。可能是grpc运行java 6的一种方式?

  • 我正在我的网络空间上安装Google API PHP客户端(2.1.0)并遵循本教程。问题是当我转到时,我有一个PHP错误: 致命错误:未捕获异常“GuzzleHttp\Ring\exception\ConnectException”,消息为“cURL error 6:请参阅”http://curl.haxx.se/libcurl/c/libcurl-errors.html'in/reportin

  • 我正在使用Guzzle6开发一个Laravel应用程序。很多功能都依赖于API,我已经为其创建了一个包装器。 我的包装器是一个类,它在<code>__construct()。 我使用的API每10秒钟有40个请求的限制。我正在缓存东西,所以很少会达到这个极限,但是我想知道如果达到这个极限,我的应用程序不会就这么死掉! 关于我的应用程序的一些注意事项: 仅当过去 6 小时内未进行相同调用时,才会进行

  • 这是来自Cloudinary文档的代码, 所以我不能以这种方式将Guzzle验证设置为假 我的问题是,通常在应用程序中,如何将Guzzle Http客户端验证设置为false

  • 我在Windows8机器上从命令行运行Grunt时出现问题。 我的研究表明,最常见的解决方案是安装grunt-cli,因为Grunt不再是全局的。我还需要确保实际安装了Grunt任务运行程序,因为它不是与grunt-cli一起安装的。 其他解决方案指向PATH系统环境变量,但它似乎与我预期的一样: null

  • 因此,我在删除和安装node和npm以安装没有sudo的软件包时遇到了麻烦,现在我无法在Webstorm中使用Grunt面板 信息是: 请注意,我已经安装了。