読者です 読者をやめる 読者になる 読者になる

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のスマホアプリだからだろうか。。