我正在使用.NET的HttpClient发送请求到服务器。我将HttpClient.Timeout属性设置为10秒,因此当服务器无法在10秒内处理我的请求时,我会收到“任务已取消”的异常。直到这里都很好。
然而,如果服务器关闭,则需要大约20秒钟才能使HttpClient返回一个正确的异常,例如图片中的异常。我希望能够在10秒钟内看到此异常,以便区分服务器关闭和操作时间过长的情况。我在msdn文档中找不到任何相关信息。是否可以在HttpClient上设置超时?
以下是我如何构建HttpClient的方式:
然而,如果服务器关闭,则需要大约20秒钟才能使HttpClient返回一个正确的异常,例如图片中的异常。我希望能够在10秒钟内看到此异常,以便区分服务器关闭和操作时间过长的情况。我在msdn文档中找不到任何相关信息。是否可以在HttpClient上设置超时?
以下是我如何构建HttpClient的方式:
var webRequestHandler = new WebRequestHandler
{
UseProxy = false,
Proxy = null,
AllowPipelining = false,
ContinueTimeout = TimeSpan.Zero,
UseCookies = false,
AllowAutoRedirect = false,
};
var httpClient = new HttpClient(webRequestHandler);
httpClient.Timeout = timeout;
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", userAgent);
httpClient.DefaultRequestHeaders.ExpectContinue = false;