2016-04-08 7 views
1

Guzzleを使用して配列を持つAPI呼び出しを実行したい。Guzzle 6 API呼び出しを配列で使用する

私の診断では、文字が[]のように表示されるように、Guzzleで問題が発生しています。

https://url-to-app.app/api/v1/resource?api_key=123456789&user_id=123&status[]=New&status[]=In%20Progress

が、URLはそう

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

これは、クエリ配列のキーに角括弧を指定する必要はありません

テストされていないことに注意してください。あなたがそうするならば、Guzzleは自動的にそのプレーンテキストを想定し、エスケープする必要があります。

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

上記を試し、Guzzleにあなたのフォーマットをさせてください。

+0

申し訳ありませんが、問題のコードが間違っていました。しかし、両方の方法で同じ結果が得られます。すなわち、文字はエスケープされる。 –

関連する問題