Guzzle 返回 cURL 错误 3:<url>格式不正确

2022-08-30 13:25:47

我想尝试一下 guzzle 库,并按照他们的快速入门教程对 api 发出 http 请求。

然而,它似乎不起作用,因为我得到以下错误:

cURL error 3: <url> malformed

由于我以前从未使用过cURL,我甚至不知道如何响应该错误消息。以下是我提出的请求的代码:

    $client = new Client();
    $client->get('/', ['verify' => true]);

    $response = $client->get('https://api.github.com/');

    dd($response);

我正在使用Laravel 5框架,并在我的HomeController中调用索引方法。我也使用WAMP。

我将不胜感激任何帮助和建议,因为我想尝试Guzzle。

以下是我收到的错误消息的图片:

Laravel 5 Error Message


答案 1

如果您因为谷歌搜索“Guzzle返回cURL错误3:格式不正确”而来到这里,请检查客户端参数。在某些版本中,它是base_uri和其他base_url

    $client = new Client([
        'base_uri' => 'http://localhost:8000',  // <-- base_uri instead of base_url
    ]);

答案 2

如果要禁用验证(不要这样做!

$response = $client->get('https://api.github.com/', ['verify' => false]);

与其完全禁用验证,不如通过提供适当的 CA 捆绑包文件来解决此问题。请参阅 Guzzle 文档中的验证

$client->setDefaultOption(
    'verify', 
    'C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt'
);

推荐