Я использую класс WebClient
для публикации некоторых данных в веб-форме. Я хотел бы получить код статуса ответа при отправке формы. До сих пор я узнал, как получить код состояния, если есть исключение
Catch wex As WebException
If TypeOf wex.Response Is HttpWebResponse Then
msgbox(DirectCast(wex.Response, HttpWebResponse).StatusCode)
End If
Однако, если форма успешно отправлена и исключение не выдается, я не буду знать код состояния (200,301,302, ...)
Есть ли способ получить код состояния, когда нет исключений?
PS: я предпочитаю не использовать httpwebrequest / httpwebresponse
Пробовал. ResponseHeaders не содержат код состояния.
Если я не ошибаюсь, WebClient
способен абстрагироваться от нескольких отдельных запросов в одном вызове метода (например, правильно обрабатывать 100 ответов Continue, перенаправления и тому подобное). Я подозреваю, что без использования HttpWebRequest
и HttpWebResponse
отдельный код состояния может быть недоступен.
Мне приходит в голову, что если вас не интересуют промежуточные коды состояния, вы можете с уверенностью предположить, что окончательный код состояния находится в диапазоне 2xx (успешно), иначе вызов не будет успешным.
К сожалению, код состояния отсутствует в словаре ResponseHeaders
.
Вы должны иметь возможность использовать вызов "client.ResponseHeaders[..]", см. эту ссылку для получения примеров возврата данных из ответа