关于php:Guzzle返回cURL错误3:格式错误

Guzzle returns cURL error 3: malformed

我想尝试一下guzzle库,并通过他们的快速入门教程来向api发出http请求。

但是它似乎不起作用,因为出现以下错误:

1
cURL error 3: <url> malformed

由于我以前从未使用过cURL,因此我什至不知道如何响应该错误消息。 这是我的代码以及正在发出的请求:

1
2
3
4
5
6
    $client = new Client();
    $client->get('/', ['verify' => true]);

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

    dd($response);

我正在使用Laravel 5框架并在HomeController中调用index方法。 也正在使用WAMP。

我将不胜感激,因为我想尝试一下Guzzle。

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

Laravel 5 Error Message


如果您要禁用验证(请勿执行此操作!):

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

与其完全禁用验证,不如通过提供适当的CA Bundle文件来解决。 请参阅Guzzle文档中的verify

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


您不应拨打此电话:

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

那就是引发错误的原因。 第三行是可以的。

错误就是它所说的。 网址格式错误。 就客户端初始化而言,我使用base_url而不是base_uri。 因此,如果遇到此错误,请确保正确指定了您的网址。


如果您是因为在Google上搜索" Guzzle返回cURL错误3:格式错误"而来这里的,请检查客户端参数。 在某些版本中,它是base_uri和其他base_url

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