我需要HTTP POST
一个复杂类型的网络服务(我无法控制)。我相信 Web 服务是使用旧版本的 ASP.NET MVC 构建的。它模型绑定格式为form-url-encoded
.
如果我向它发射以下内容,它会完美运行。如您所见,我手动创建了一组键/值对。
var values = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("Username", "some-username"),
new KeyValuePair<string, string>("Password", "some-password"),
new KeyValuePair<string, string>("Product", "some-product")
};
var content = new FormUrlEncodedContent(values);
var response = new HttpClient().PostAsync(url, content).Result;
但我不想这样做,如果可以的话,我只想发送复杂类型。
var content = new ComplexType("some-username", "some-password", "some-product");
var response = new HttpClient().PostAsync(url, content).Result;
我相信曾经有一个HttpRequestMessage<T>
,但已经放弃了
HttpClient.PostAsJsonAsync<T>(T value) sends “application/json”
HttpClient.PostAsXmlAsync<T>(T value) sends “application/xml”
但是我不想发送Json
,或者XML
我想发送form-url-ecncoded
而无需将复杂类型转换为键/值对集合的麻烦。
本质上,我也想知道 Jaans 提出的 这个问题的答案 (他是对第二个答案的第二个评论)。
任何人都可以建议。