Tsung — Как отправить массив или объект в параметрах запроса?

Мне нужно отправить объект, как PHP

$obj = [
array('id' => '111');
];

как параметр запроса POST.
Я пытался использовать

[{struct,[{<<"id">>,<<"111">>},{<<"id">>, <<"222">>}]}]

[{struct,[{&quot;id&quot;,&quot;111&quot;}]}]

[{struct,[{&quot;id&quot;:&quot;111&quot;}]}]

[{struct,[{&quot;id&quot;=>&quot;111&quot;}]}]

[[{&quot;id&quot;,&quot;111&quot;}]]

[{&quot;id&quot;:&quot;111&quot;}]

[{&quot;id&quot;=>&quot;111&quot;}]

но это неправильно.
Я пытался заменить «на &quot; но это тоже неправильно.
Я не нахожу в руководстве пользователя примеров работы с массивом или объектом. Кто-нибудь сталкивался с этим вопросом?

0

Решение

Создайте строку запроса, используя квадратные скобки, а затем закодируйте ее URL.

Пример строки запроса:

someArray[someindex_1][name]=blah&someArray[someindex_1][id]=123&someArray[someindex_2][name]=bah blah&someArray[someindex_2][id]=456

отправьте закодированную строку как тело почтового запроса. Это должно привести к массиву на сервере, как это:

print_r($_POST['someArray']);

// array(
// "someindex_1" => array(
//    "name" => "blah"//    "id" => 123
//  )
//  "someindex_2" => array(
//    "name" => "blah blah"//    "id" => 456
//  )
//);
0

Другие решения

Вы можете отправить массив в запросе POST, используя имя элемента HTML в квадратных скобках «[]». Пример показан ниже:

<input type="text" name="countries[]" value="Nigeria">
<input type="text" name="countries[]" value="Ghana">

Затем в своем PHP-коде вы можете получить значения следующим образом:

$countries = $_POST['countries']; //$countries is now an array of POST-ed countries
var_dump($countries);

Но если то, что вы хотите отправить через объект, то вы должны его сериализовать. Вы можете использовать код ниже:

$obj = get_an_object_somehow();
$encoded_obj = base64_encode(serialize($obj));

Тогда в вашей HTML-форме:

<input type="text" name="myObj" value="$encoded_obj">

Наконец, в вашем скрипте обработки формы вы можете десериализовать его следующим образом:

$decoded_obj = unserialize(base64_decode($obj));//get back original object
var_dump($decoded_obj);
0

По вопросам рекламы [email protected]