コンソールアプリケーションで次のコードを使用しましたが、Console.Read()を使用するまでポストコールは終了しません。最後にまたはクライアント.PostAsync( "api/xxx"、contentPost).wait()。 しかし、Webアプリケーションでは、wait()メソッドを使用する必要はありません。私はwait()メソッドを使いたいとは思っていません。この問題を手伝ってもらえますか?なぜHttpClient.PostAsync()はCosnoleアプリケーションで終了せずにWebアプリケーションで終了しましたか?
static void Main(string[] args)
{
CreateLog();
}
private static void CreateLog()
{
for(int i=0;i<100;i++)
ProcessLog(new LogMessage() {
});
Console.Write("Press Enter to exit");
Console.ReadLine();
}
private static void ProcessLog(LogMessage message)
{
//Post message to web service
HttpClient client = new HttpClient();
// ConfigurationSettings.GetConfig("web api")
client.BaseAddress = new Uri(@"web api url");
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
HttpContent contentPost = new StringContent(JsonConvert.SerializeObject(message), Encoding.UTF8, "application/json");
client.PostAsync("api/xxx", contentPost);
}
はい。この問題の解決方法は何ですか?Console.Read()は回避策ですが、使用したくありません。 – Gangz
アプリケーションを終了する前に、すべての通話が完了するまで待つ必要があります。 – EJoshuaS
アクティブな通話があるかどうかを確認するにはどうすればいいですか? – Gangz