2015-06-14 7 views
8

Używam lumenów próbujących ustawić proste żądania api za pomocą żarcia.base_uri nie jest oparty na instancji klienta programu buzz

Problem polega na tym, że parametr base_uri nie wydaje się poprawnie przekazany na początku new Client().

uproszczony przykład:

use GuzzleHttp\Client; 

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

Następnie poprzez wywołanie API dostać

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

nie działa. Starałem się nie używać bezwzględnych adresów URL, takich jak /orders. Jeśli całkowicie ominę bazę base_uri i po prostu dodaję ją do metody get $client->get('https://siteurl.com/api/v2/orders'), to działa.

Używam: "laravel/lumen-framework": "5.0. *", "guzzlehttp/chlać": "^ 6.0"

* Kontynuacja:

Dodałem flagę debugowania, aby móc porównać nagłówki, a zauważalna różnica znajduje się w wierszu żądania pobierania.

bezwzględny adres URL w (base_uri pominięciem) Metoda get:

/api/v2/status

GET zamówienia = zakończone HTTP/1,1

Korzystanie base_uri (wersja jest pozbawiony):

statusu GET/api/rozkazy? = zakończone HTTP/1,1

+0

Czy zdałeś sobie z tego sprawę? Mam dokładnie ten sam problem i mam moje base_uri zakończone z/jak zasugerowano w odpowiedzi. –

+0

Zignoruj ​​mój komentarz. Szukałem niewłaściwej dokumentacji do mojej wersji na żłopie. Najnowsza wersja używa base_uri i wracam do poprzedniej wersji, która używała base_url zamiast. –

+0

@PaulZepernick Czy poprawka, którą zasugerowałem, działa dla Ciebie? –

Odpowiedz

18

Musisz zakończyć swoje base_uri z ukośnikiem/

np

use GuzzleHttp\Client; 

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

Edit: Uwaga że base_uri jest dla chlać 6+, podczas gdy poprzednie wersje używane base_url.

+4

Twój ostatni komentarz jest tym, co mnie uratowało. Potwierdzono, że za pomocą 'base_url' z końcowym ukośnikiem kończącym adres URL działa z Guzzle 5 –

Powiązane problemy