Жрать form_params не принимает массив

Я использую Guzzle 6 и не могу передать массив с form_params в теле клиента.

$postFields = [
    form_params => [
        'data[test]' => "TEST",
        'data[whatever]' => "Whatever..."
    ]
];

$client = new GuzzleClient([
        'cookies' => $jar, // The cookie
        'allow_redirects' => true, // Max 5 Redirects
        'base_uri' => $this->navigateUrl, // Base Uri
        'headers' => $this->headers
]);
$response = $client->post('api',[$postFields]);

Наконец, когда я отправляю запрос, мои данные исчезают... Но если я вручную добавлю данные в ответ, он работает нормально.

$response = $client->post(
    'api',
    [form_params => [
        'data[test]'=>"TEST",
        'data[wht]' => 'Whatever'
    ],
]
// It's working this way...

Я надеюсь, что я достаточно ясен, если вам нужна дополнительная информация, не стесняйтесь спрашивать. Заранее спасибо.


person Petyo Tsonev    schedule 01.09.2015    source источник


Ответы (1)


Я вижу пару проблем. Во-первых, ваш массив $postFields выглядит неправильно отформатированным, а во-вторых, вы заключаете свой массив $postFields в другой массив.

$options = [
    'debug' => true,
    'form_params' => [
        'test' => 15,
        'id' => 43252435243654352,
        'name' => 'this is a random name',
    ],
    'on_stats' => $someCallableItem,
];
$response = $client->post('api', $options);
person Shaun Bramley    schedule 30.09.2015