使用数组进行Guzzle 6 API调用

时间:2016-04-08 12:06:11

标签: php api guzzle

我想使用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());

1 个答案:

答案 0 :(得分:0)

  

请注意,这是未经测试的

您不需要在查询数组的键中指定方括号。如果你这样做,Guzzle将自动假设它的纯文本并且必须被转义。

'query' => [
    'api_key' => '123456789',
    'user_id' => $user_id,
    'status'  => $not_complete // providing this is an array it should work
]

尝试上述操作,让Guzzle为您进行格式化。