Tsung - 如何在请求参数中发送数组或对象?

时间:2015-09-29 08:50:59

标签: php load-testing 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;}]

但这是错误的。 我试图取代&#34;由&quot;提出,但也是错误的。 我在用户手册中找不到有关使用数组或对象的任何示例。有人面对这个问题吗?

2 个答案:

答案 0 :(得分:0)

使用方括号构建查询字符串,然后对其进行URL编码。

示例查询字符串:

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

将编码的字符串作为post请求的主体发送。这应该导致服务器上的数组如下:

print_r($_POST['someArray']);

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

答案 1 :(得分:0)

您可以使用带有方括号&#34; []&#34;的HTML元素名称在POST请求中发送数组。一个例子如下所示:

<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);

但是,如果你要发送的是一个Object,那么你必须序列化它。您可以使用以下代码:

$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);