Я использую Asp.Net WebClient для публикации http. У меня есть попытка поймать код, чтобы поймать WebException.
try
{
using (MyWebClient wc = new MyWebClient())
{
wc.Headers[HttpRequestHeader.ContentType] = _lender.ContentType;
wc.Timeout = 200;
return _lender.GetResult(wc.UploadString(_lender.PostUri, _lender.PostValues));
}
}
catch (WebException ex)
{
return new ServiceError(ex.Status.ToString());
}
Основные исключения, которые я ищу, - это таймауты. Я расширил WebClient, чтобы установить время ожидания.
Когда я устанавливаю тайм-аут, равный 100 мс, как и ожидалось, генерируется исключение. Я могу получить статус webexception в соответствии с примером (он возвращает «таймаут»), однако я хочу также вернуть коды статуса.
Если я развернусь, чтобы получить httpwebresponse с помощью ex.Response, я получу возвращаемое значение null, когда я ожидал связанный код состояния. Почему я не получаю HttpStatus.Request.Timeout?