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

时间:2015-04-18 21:03:01

标签: php laravel curl guzzle

我想尝试一下guzzle库,并按照他们的quickstart教程向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 out。

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

Laravel 5 Error Message

4 个答案:

答案 0 :(得分:8)

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

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

不是完全禁用验证,而是可以通过提供适当的CA捆绑文件来解决此问题。请参阅Guzzle文档中的verify

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

答案 1 :(得分:7)

您不应该接听此电话:

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

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

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:0)

就我而言,我错误地将环境文件命名为“env”

确保它存在于根路径并命名为“.env”