HTTP POST
Web サービス (私が制御していない) に複雑な型が必要です。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 が提示するこの質問に対する答えも知りたい です (彼は 2 番目の答えに対する 2 番目のコメントです)。
誰でもアドバイスしてください。