web-dev-qa-db-ja.com

GuzzleはcURLエラー3を返します:<url>の形式が正しくありません

私は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を使用しています。

ガズルを試してみたいので、私は助けと提案をお願いします。

ここに私が得るエラーメッセージの写真があります:

Laravel 5 Error Message

20

検証を無効にする場合(これをしないでください!):

$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'
);
8
Limon Monte

この呼び出しはないはずです。

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

それがエラーを投げているものです。 3行目は大丈夫です。

エラーはそれが言うことを意味します。 URLの形式が正しくありません。クライアントの初期化に関する私の場合、私は base_url の代わりに base_uri。したがって、このエラーが発生した場合は、URLが適切に指定されていることを確認してください。

7
Teliov

「GuzzleがcURLエラー3を返す:不正な形式」をGoogleで検索したためにここに来た場合は、クライアントパラメータを確認してください。一部のバージョンではbase_uriおよびその他のbase_url

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