2015-06-14 5 views
8

से आधारित नहीं है, मैं लुमेन का उपयोग गोजल के माध्यम से सरल एपीआई अनुरोधों को सेट करने की कोशिश कर रहा हूं।बेस_री गुज़ल क्लाइंट इंस्टीट्यूशन

समस्या यह है कि base_uri पैरामीटर प्रारंभिक new Client() पर सही ढंग से पारित नहीं होता है।

सरलीकृत उदाहरण:

use GuzzleHttp\Client; 

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

तब के माध्यम से

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

मिल काम नहीं करता है एपीआई बुला। मैं /orders जैसे पूर्ण यूआरएल का उपयोग न करने के लिए सावधान रहा हूं। अगर मैं बेस_री को पूरी तरह से बाईपास करता हूं और इसे $client->get('https://siteurl.com/api/v2/orders') प्राप्त विधि पर जोड़ता हूं, तो यह काम करता है।

मैं उपयोग कर रहा हूँ: "laravel/लुमेन-ढांचा": "5.0 *।", "guzzlehttp/guzzle": "^ 6.0"

* अनुवर्ती:

मैंने डीबग फ्लैग जोड़ा ताकि मैं हेडर की तुलना कर सकूं, और उल्लेखनीय अंतर प्राप्त अनुरोध लाइन में है।

प्राप्त विधि (दरकिनार base_uri) में निरपेक्ष यूआरएल:

प्राप्त/API/v2/आदेश स्थिति = पूरा HTTP/1,1

base_uri का उपयोग करना (संस्करण छीन किया जा रहा है):

प्राप्त/API/आदेश? स्थिति = पूरा HTTP/1,1

+0

क्या आपको यह पता लगाना पड़ा? मेरे पास एक ही समस्या है, और मेरे पास मेरा बेस_री उत्तर में सुझाए गए/जैसा है। –

+0

मेरी टिप्पणी को रद्द करें। मैं अपने गोज़ल संस्करण के लिए गलत दस्तावेज देख रहा था। नवीनतम संस्करण base_uri का उपयोग करता है और मैं पिछले संस्करण पर वापस आ गया हूं जो इसके बजाय base_url का उपयोग करता है। –

+0

@PaulZepernick क्या मैंने आपके लिए सुझाव दिया है? –

उत्तर

18

आप/एक फ़ॉर्वर्ड स्लैश के साथ अपने base_uri समाप्त करने के लिए

जैसे जरूरत

use GuzzleHttp\Client; 

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

संपादित करें: नोट कि base_uri, guzzle 6 + के लिए है, जबकि पिछले संस्करणों base_url इस्तेमाल किया।

+4

आपकी आखिरी टिप्पणी है जो मुझे बचाती है। पुष्टि की है कि यूज़ल समाप्त करने वाले फॉरवर्ड स्लैश के साथ 'base_url' का उपयोग करके Guzzle 5 के साथ काम करता है –

संबंधित मुद्दे