Yii2 Client установка тела POST запроса

В официальной документации Yii2 Http Client указан такой способ передачи POST параметров:

use yii\httpclient\Client;

$client = new Client();
$response = $client->createRequest()
    ->setMethod('POST')
    ->setUrl('http://example.com/api/1.0/users')
    ->setData(['name' => 'John Doe', 'email' => '[email protected]'])
    ->send();
if ($response->isOk) {
    $newUserId = $response->data['id'];
}

ЛИНК

т.е. передаю параметры в виде 'name' => 'value'.

Но как передать параметры сразу строкой? Например, у меня есть переменная, в которой POST параметры указаны в виде строки:

$postData = 'param1=value1&param2=value2&param3=value3';

Пытаюсь сделать так:

$response = $client->createRequest()
->setMethod('POST')
->setUrl('http://example.com/api/1.0/users')
->setData($postData)
->send();

И... ничего не выходит. Как быть?


Ответы (1 шт):

Автор решения: Алексей Шиманский

Можно использовать parse_str, чтобы преобразовать такую строку в ассоциативный массив

→ Ссылка