Как получить код состояния от веб-клиента?

Я использую класс 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

86
задан SteveC 15 November 2012 в 14:55
поделиться

2 ответа

Пробовал. ResponseHeaders не содержат код состояния.

Если я не ошибаюсь, WebClient способен абстрагироваться от нескольких отдельных запросов в одном вызове метода (например, правильно обрабатывать 100 ответов Continue, перенаправления и тому подобное). Я подозреваю, что без использования HttpWebRequest и HttpWebResponse отдельный код состояния может быть недоступен.

Мне приходит в голову, что если вас не интересуют промежуточные коды состояния, вы можете с уверенностью предположить, что окончательный код состояния находится в диапазоне 2xx (успешно), иначе вызов не будет успешным.

К сожалению, код состояния отсутствует в словаре ResponseHeaders.

21
ответ дан 24 November 2019 в 08:00
поделиться

Вы должны иметь возможность использовать вызов "client.ResponseHeaders[..]", см. эту ссылку для получения примеров возврата данных из ответа

-1
ответ дан 24 November 2019 в 08:00
поделиться