【发布时间】:2015-10-11 04:27:14
【问题描述】:
我需要与只接受表单编码负载的第三方端点进行交互。端点需要复杂的数据类型在这个端点,意思是这样的(但形式编码,而不是 JSON):
{
"foo": "bar",
"baz": {
"zip": "zap"
}
}
我的谷歌搜索和端点的文档表明这应该像这样编码:
foo=bar&baz[zip]=zap
我正在使用HttpClient,并且我想使用FormUrlEncodedContent,但是当我这样做时,它会将我的[] 替换为转义字符。
public class Tests
{
[Fact]
public void Test()
{
var content = new Dictionary<String, String>
{
{ "foo", "bar" },
{ "baz[zip]", "zap" }
};
var formContent = new FormUrlEncodedContent(content);
Assert.Equal("foo=bar&baz[zip]=zap", formContent.ReadAsStringAsync().Result);
}
}
我最终得到的是:
foo=bar&baz%5Bzip%5D=zap
【问题讨论】:
标签: c# .net dotnet-httpclient