Guzzle возвращает ошибку cURL 3: <url> malformed
Я хочу попробовать библиотеку жужжания и следую через quickstart, чтобы сделать http-запросы к api.
Однако он не работает, потому что я получаю следующую ошибку:
cURL error 3: <url> malformed
Поскольку я никогда раньше не работал с cURL, я даже не знаю, как ответить на это сообщение об ошибке. Вот мой код с запросом, который я делаю:
$client = new Client();
$client->get('/', ['verify' => true]);
$response = $client->get('https://api.github.com/');
dd($response);
Я использую структуру Laravel 5 и вызываю метод index в моем HomeController. Также я использую WAMP.
Я был бы признателен за любую помощь и внушение, потому что я хотел бы попробовать Gzzle.
Вот изображение сообщения об ошибке, которое я получаю:
![Laravel 5 Error Message]()
Ответы
Ответ 1
Если вы хотите отключить проверку (не делайте этого!):
$response = $client->get('https://api.github.com/', ['verify' => false]);
Вместо того, чтобы полностью отключить проверку, это может быть исправлено путем предоставления правильного файла пакета CA. Смотрите verify
в документации Guzzle.
$client->setDefaultOption(
'verify',
'C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt'
);
Ответ 2
Вы не должны иметь этот вызов:
$client->get('/', ['verify' => true]);
Это то, что бросает ошибку. Третья строка в порядке.
Ошибка означает, что она говорит. URL неверен. В моем случае при инициализации клиента я использовал base_url вместо base_uri. Поэтому, если вы столкнетесь с этой ошибкой, убедитесь, что ваш URL правильно указан.
Ответ 3
В случае, если вы пришли сюда, потому что вы погуглили "Guzzle возвращает cURL error 3: malformed", проверьте параметр клиента. В некоторых версиях это base_uri и другие base_url
$client = new Client([
'base_uri' => 'http://localhost:8000', // <-- base_uri instead of base_url
]);