我正在尝试使用 System.Net.Http.HttpClient 从 Web API 调用 PostAsync 方法。我收到以下错误:
System.AggregateException "A task was canceled."
任务:
Id = 1, Status = System.Threading.Tasks.TaskStatus.Canceled, Method = "{null}", Result = "{Not yet computed}"
代码:
using (HttpClientHandler handler = new HttpClientHandler())
{
handler.Credentials = new NetworkCredential("MyUsername", "p@ssw0rd");
using (HttpClient client = new HttpClient(handler))
{
var postData = new List<KeyValuePair<string, string>>();
postData.Add(new KeyValuePair<string, string>("status", "Hello world"));
HttpContent content = new FormUrlEncodedContent(postData);
var responseTask = client.PostAsync(url, content).ContinueWith(
(postTask) =>
{
postTask.Result.EnsureSuccessStatusCode();
});
}
我假设 responseTask 会强制方法同步运行?
这是一个 WPF 应用程序,而不是 ASP.NET。
最佳答案
我遇到了同样的错误,并追踪到我的 HttpClient 超时。默认超时为 100 秒。我将以下内容添加到 HttpClient 的创建中。
HttpClient httpClient = new HttpClient();
httpClient.Timeout = TimeSpan.FromMinutes(10);
关于c# - Web Api 的 PostAsync HttpClient 错误 - System.AggregateException "A task was canceled.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16517504/