Это в значительной степени зависит от формата запроса, который ожидает ваш сервер.
Предположим, вы хотите иметь операцию GET, такую как /multivalues?parm1=11&parm1=22
, и вам нужно преобразовать ее в JSON-массив для операции POSTтело.Предоставление параметров в этом формате позволит вам извлечь несколько значений в виде строкового массива, а затем преобразовать его в какой-то другой массив:
<set-method>POST</set-method>
<set-body template="none">var body = new JObject();
string[] arrayOfStrings = (string[])context.Request.Url.Query["parm1"];
var parameterArray = new JArray();
foreach(string value in arrayOfStrings)
{
var parm1 = new JObject();
parm1["name"] = "parm1";
parm1["value"] = value;
parameterArray.Add(parm1);
}
body["parameters"] = parameterArray;
return body.ToString();</set-body>
Но вы также можете иметь свой собственный разделитель в одной строке, такой как /multivalues?parm2=11,22
:
<set-method>POST</set-method>
<set-body template="none">var body = new JObject();
string[] arrayOfStrings = (string [])context.Request.Url.Query["parm2"];
string[] subArrayOfStrings = arrayOfStrings[0].Split(',');
var parameterArray = new JArray();
foreach(string value in subArrayOfStrings)
{
var parm2 = new JObject();
parm2["name"] = "parm2";
parm2["value"] = value;
parameterArray.Add(parm2);
}
body["parameters"] = parameterArray;
return body.ToString();</set-body>