FormUrlEncodedContent
принимает IEnumerable<KeyValuePair<string, string>> nameValueCollection
, а не Dictionary
. Смотри это
Чтобы передать словарь, вы должны сериализовать его, например, в json.
Первый шаг, получение json-представления вашего словаря с помощью Newtonsoft.Json
(вы можете вручную сериализовать его или использовать другую библиотеку)
using Newtonsoft.Json
var arg_employee = new Dictionary<string, Dictionary<string, string>>
{
{
"filter_data",
new Dictionary<string, string>
{
{"user_name", "admin"},
}
},
};
var jsonDictionary = JsonConvert.SerializeObject(arg_employee );
Второй шаг, опубликуйте его как StringContent
вместо FormUrlEncodedContent
:
var content = new StringContent(jsonDictionary , Encoding.UTF8, "application/json");