【发布时间】:2021-11-23 10:15:02
【问题描述】:
当使用 Guzzle 发布具有多个值的字段时,括号会附加到字段名称:
<?php
$client = new \GuzzleHttp\Client([
'base_uri' => 'https://www.example.com/test',
'headers' => [
'Content-Type' => 'application/x-www-form-urlencoded',
],
);
$client->request('POST', '', [
'form_params' => [
'foo' => [
'hello',
'world',
],
],
]);
Guzzle 将此数据发送为 foo[0]=hello&foo[1]=world。有没有办法省略括号,使数据以foo=hello&foo=world 发送?例如,如果包含括号,Google 表单会返回 400 错误响应。
【问题讨论】:
-
你试过
'form_params'=>['foo'=>'hello','foo'=>'world']吗? -
是的,问题在于结果数组将有一个重复的键
foo并因此用 'world' 覆盖 'hello',只留下['foo' => 'world']为form_params。