在 flurl 中使用 url 编码请求中的 c# 字符

Using c# characters in form url encoded request in flurl

有谁知道如何使用 flurl 通过 url 编码形式发送带括号的字段?

示例:我想像这样发送具有 "foo" 值的 foo[bar] 字段

var response = await "https://server/request"
    .WithHeader("Header1", "headerValue")
    .PostUrlEncodedAsync(new
    {
         foo[bar] = "foo"
    })

C# 标识符中不允许使用方括号,因此使用匿名对象来表示 name/value 对在这里不起作用。但是,在 Flurl 将对象解析为 name/value 对的所有情况下,它都会对字典进行特殊处理。所以你可以这样做:

var response = await "https://server/request"
    .WithHeader("Header1", "headerValue")
    .PostUrlEncodedAsync(new Dictionary<string, string>()
    {
        { "foo[bar]", "foo" }
    });