我已经在ASP.NET页面上通过按钮单击调用了Web API,如下所示。虽然我在某处读到它不是异步的(因为在client.PostAsJsonAsync(url, sd).Result;
中使用了.Result
),可能会创建死锁,但这完全可以正常工作。
请建议更新此代码的最佳方法。
private void CallApi(SurveyData sd)
{
using (var client = new HttpClient())
{
string url = ConfigurationManager.AppSettings.Get("url");
client.DefaultRequestHeaders.Accept.Clear();
var response = client.PostAsJsonAsync(url, sd).Result;
if (response.IsSuccessStatusCode)
{
Response.Write("Success");
}
else
{
Response.Write(response.StatusCode + " : Message - " + response.ReasonPhrase);
}
}
}
CallApi
方法设置为async
并在使用该方法时使用await
,会怎么样呢? - Raghuveer