Guzzle

2012-12-18 11 views
7

Guzzle ग्राहक में क्वेरी स्ट्रिंग के माध्यम से सरणी भेजने के लिए इस कोडGuzzle

$client->get('https://example.com/{?a}', array('a' => array('c','d'))); 

इस यूआरएल

https://example.com/?a=c,d 

सबसे अच्छा अभ्यास RESTful आवेदन में क्वेरी स्ट्रिंग में सरणी भेजने के लिए क्या है से डिफ़ॉल्ट रूप से पैदा करता है? सवाल यह है कि, मैं सर्वर पक्ष पर कैसे निर्धारित कर सकता हूं कि c,d एक स्ट्रिंग या सरणी है? स्क्वायर ब्रैकेट्स का उपयोग करके सरणी भेजने के लिए बेहतर नहीं है, उदा। a[]=c&a[]=d? स्क्वायर ब्रैकेट का उपयोग करने के लिए मैं गोज़ल कैसे सेट कर सकता हूं? या JSON एन्कोडेड चर का उपयोग करना बेहतर है? सर्वर की तरफ मैं Tonic का उपयोग कर रहा हूं।

+0

मुझे वही दिलचस्पी है – finishingmove

उत्तर

2

ऐसा लगता है कि उत्तर here है।

$client = new Client('http://test.com/api');  
$request = $client->get('/resource');  
$query = $request->getQuery();  
$query->set('status', array('first', 'second')); 
4

कार्य समाधान::

$vars = array('state[]' => array('Assigned','New'), 'per_page' => $perPage, 'page' => $pageNumber); 
$query = http_build_query($vars, null, '&'); 
$string = preg_replace('/%5B(?:[0-9]|[1-9][0-9]+)%5D=/', '=', $query); // state[]=Assigned&state[]=New 
$client = new Client([follow instruction to initialize your client ....]); 
$response = $client->request('GET', $uri, ['query' => $string]); 

अब आप एक ही नाम है

मैं ऊपर के लिंक में दिखाया गया है की तरह की तरह ?status[]=first&status[]=second

कुछ आप guzzle में ऐसा कर सकते हैं करना चाहते थे आपके अनुरोध में पैरामीटर।

डुंग।

स्रोत: http_build_query with same name parameters