我想尝试一下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。
以下是我收到的错误消息的图片:
答案 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”