9

我正在编写一个 C# api 客户端,对于大多数发布请求,我使用 FormUrlEncodedContent 发布数据。

List<KeyValuePair<string, string>> keyValues = new List<KeyValuePair<string, string>>();

keyValues.Add(new KeyValuePair<string, string>("email", email));
keyValues.Add(new KeyValuePair<string, string>("password", password));

var content = new FormUrlEncodedContent(keyValues);

但现在我需要发布一个字符串数组作为一个参数。像下面这样的东西。

string[] arr2 = { "dir1", "dir2"};

如何使用 c# HttpClient 将此数组与其他字符串参数一起发送。

4

1 回答 1

16

我遇到了同样的问题,我必须将一些常规字符串参数和字符串数组添加到 Http POST 请求正文中。

为此,您必须执行类似于以下示例的操作(假设您要添加的数组是一个名为 的字符串数组dirArray):

//Create List of KeyValuePairs
List<KeyValuePair<string, string>> bodyProperties = new List<KeyValuePair<string, string>>();

//Add 'single' parameters
bodyProperties.Add(new KeyValuePair<string, string>("email", email));
bodyProperties.Add(new KeyValuePair<string, string>("password", password));

//Loop over String array and add all instances to our bodyPoperties
foreach (var dir in dirArray)
{
    bodyProperties.Add(new KeyValuePair<string, string>("dirs[]", dir));
}

//convert your bodyProperties to an object of FormUrlEncodedContent
var dataContent = new FormUrlEncodedContent(bodyProperties.ToArray());
于 2015-12-11T09:15:59.293 回答