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

Lov*_*ess 22 php curl laravel guzzle

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

但它似乎不起作用,因为我收到以下错误:

cURL error 3: <url> malformed
Run Code Online (Sandbox Code Playgroud)

由于我之前从未使用过cURL,因此我甚至不知道如何回复该错误消息.以下是我提出的请求的代码:

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

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

    dd($response);
Run Code Online (Sandbox Code Playgroud)

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

我会感激任何帮助和建议,因为我想尝试Guzzle out.

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

Laravel 5错误信息

Lim*_*nte 8

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

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

可以通过提供适当的CA捆绑文件来修复此问题,而不是完全禁用验证.请参阅verifyGuzzle文档.

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


Tel*_*iov 7

你不应该有这个电话:

$client->get('/', ['verify' => true]);
Run Code Online (Sandbox Code Playgroud)

这就是抛出错误的原因.第三行没问题.

错误就是说它的意思.网址格式错误.在我初始化客户端的情况下,我使用base_url而不是base_uri.因此,如果您遇到此错误,请确保正确指定了您的网址.


Kai*_*are 6

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

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