16

私はルーメンを使用して、ガズル経由で単純な API リクエストを設定しようとしています。

問題は、base_uri パラメーターが初期の で正しく渡されていないように見えることnew Client()です。

簡単な例:

use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://siteurl.com/api/v2'
]);

次に、get 経由で API を呼び出します

$res = $client->get('orders', [
    'query' => [
        'status' => 'completed'
    ]
]);

動作しません。のような絶対 URL を使用しないように注意してきました/orders。base_uri を完全にバイパスして get メソッドに追加するだけ$client->get('https://siteurl.com/api/v2/orders')で機能します。

私が使用している: "laravel/lumen-framework": "5.0.*", "guzzlehttp/guzzle": "^6.0"

*ファローアップ:

ヘッダーを比較できるようにデバッグ フラグを追加しました。顕著な違いは get リクエスト行にあります。

get メソッドの絶対 URL (base_uri をバイパス):

GET /api/v2/orders?status=完了 HTTP/1.1

base_uri の使用 (バージョンは削除されています):

GET /api/orders?status=完了 HTTP/1.1

4

1 に答える 1

41

base_uri をスラッシュ / で終了する必要があります

例えば、

use GuzzleHttp\Client;

$client = new Client([
    'base_uri' => 'https://siteurl.com/api/v2/'
]);

編集: base_uri は Guzzle 6+ 用であることに注意してください。以前のバージョンでは base_url が使用されていました

于 2015-06-16T17:47:16.357 に答える