C#のHttpClientでPOSTしてresponse bodyを受け取る
リクエスト送信
async public Task<string> HttpPost(string url) { var client = new HttpClient(); var content = new FormUrlEncodedContent(new Dictionary<string, string> { /** * POSTするデータを書く * { "key", value } * のような感じで */ }); var response = await client.PostAsync(url, content); return await response.Content.ReadAsStringAsync(); }
responseにはStatusCodeとかHeadersも入ってる。
レスポンス取得
var url = "http://127.0.0.1:8080"; var task = Task.Run(() => { return HttpPost(url); }); System.Console.WriteLine(task.Result);
ググってみたら他所のサイトのサンプルコードには
var task = await HttpPost(url);
で値が取れるかのように書いてあるところもあったけど、自分の場合は無理だった(アプリが止まった)
.NETのWEBアプリじゃなくてXamarinのスマホアプリだからだろうか。。