我想使用Guzzle执行和调用具有数组的API。
在我的诊断程序中,我有一个问题,即Guzzle转义数组字符[
和]
,网址应如下所示。
https://url-to-app.app/api/v1/resource?api_key=123456789&user_id=123&status[]=New&status[]=In%20Progress
但网址就像这样
https://url-to-app.app/api/v1/resource?api_key=123456789&user_id=123&status%5B1%5D=New&status%5B1%5D=In%20Progress
我不确定我做错了什么或是否有解决方法(也许这是一个功能?)但这是我的代码。
$not_complete = [
'New',
'In Progress',
'Waiting for Parts',
'Waiting on Customer',
'Scheduled',
'Customer Reply',
'Parts to be Ordered',
'To be Delivered',
'To be Contacted'
];
$user_id = 123;
$res = $client->request('GET', 'https://url-to-app.app/api/v1/resource', [
'query' => [
'api_key' => '123456789',
'user_id' => $user_id,
'status' => $not_complete
]
]);
$tickets = json_decode($res->getBody());
答案 0 :(得分:0)
请注意,这是未经测试的
您不需要在查询数组的键中指定方括号。如果你这样做,Guzzle将自动假设它的纯文本并且必须被转义。
'query' => [
'api_key' => '123456789',
'user_id' => $user_id,
'status' => $not_complete // providing this is an array it should work
]
尝试上述操作,让Guzzle为您进行格式化。