Bir düğmeyle Web API'sini ASP.NET sayfasından aradım. Bu mükemmel bir yerlerde okudum olsa async
değil gibi kilitlenme yaratacaktır iyi çalışıyor (hat client.PostAsJsonAsync(url, sd).Result;
içinde .Result
kullanımı nedeniyle)Web API'sini Arayın Uygulamadan
bu kodu güncellemek için en iyi yolu önerin.
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);
}
}
}
yapılandırılan bir taban url ile API yöntemlerini ele almak genel bir yöntem olarak yazmaya başlamış olup
bu yöntemle deneyebilirsiniz Evet, satır, var response = client.PostAsJsonAsync (url, sd) .Sonuç; cevap beklemek zorunda. Web sunucunuzda async denetleyici seçeneğini kullanabilirsiniz. – Saadi
Emin değilim, ama eğer 'CallApi' yöntemini 'async' yaparsanız ve bu yöntemi kullanırken 'bekle' seçeneğini kullanırsanız ne olur? – Raghuveer
MVC değilse, yöntem zaman uyumsuz hale getirilebilir ve istemci.PostAsJsonAsync beklenebilir. Genelde olsa da (anladığım kadarıyla, geçersiz yöntemleri async olarak işaretlemek için kötü bir uygulama). – Tim