Guzzle客户端默认从此代码创建
$client->get('https://example.com/{?a}',array('a' => array('c','d')));
这个网址
https://example.com/?a=c,d
在RESTful应用程序中在查询字符串中发送数组的最佳做法是什么?问题是,如何在服务器端确定c,d是字符串还是数组?使用方括号发送数组不是更好吗一个[] = C&安培;一个[] = d?如何设置Guzzle使用方括号?或者最好使用JSON编码变量?在服务器端我使用的是Tonic.
工作方案:
$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]);
现在您的请求中有相同的名称参数.
粪.