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

しかし、今度は文字列配列を 1 つのパラメーターとしてポストする必要があります。以下のようなもの。

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 に答える