サーバーにリクエストを送信し、返された値を処理したい:
private static string Send(int id)
{
Task<HttpResponseMessage> responseTask = client.GetAsync("aaaaa");
string result = string.Empty;
responseTask.ContinueWith(x => result = Print(x));
responseTask.Wait(); // it doesn't wait for the completion of the response task
return result;
}
private static string Print(Task<HttpResponseMessage> httpTask)
{
Task<string> task = httpTask.Result.Content.ReadAsStringAsync();
string result = string.Empty;
task.ContinueWith(t =>
{
Console.WriteLine("Result: " + t.Result);
result = t.Result;
});
task.Wait(); // it does wait
return result;
}
私はTask
正しく使用していますか?Send()
メソッドはstring.Empty
毎回返されるのに対し、 whilePrint
は正しい値を返すため、そうは思いません。
私は何を間違っていますか?サーバーから正しい結果を得るにはどうすればよいですか?