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
    ]);