Как получить подробную информацию из HttpWebResponse
-
21-08-2019 - |
Вопрос
Я делаю сообщение httpwebrequst, но в HttpWebResponse получаю код ошибки 403, запрещенный.Эта ошибка мне не очень полезна.
Затем я попробовал тестовую программу (у меня нет исходного кода для :() и использовал ее для создания того же сообщения, и она вернулась с запрещенным кодом 403, но также сказала мне, что необходим SSL.Итак, можно ли получить больше информации о «сервере» из неудачного httpwebrequest, а не просто код ошибки?
Спасибо
Просто чтобы прояснить ситуацию.Хорошо, что я получаю 403, мне просто интересно, почему тестовая программа может сказать, что SSL необходим SSL, когда я вижу что-то подобное в веб-исключении
Решение
Если WebException брошено из -за ошибки протокола, его свойство ответа будет содержать фактический ответ, полученный с веб -сервера.
try
{
// Do WebRequest
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
HttpWebResponse response = ex.Response as HttpWebResponse;
if (response != null)
{
// Process response
}
}
}
Другие советы
Нет явного способа запросить более подробную информацию, нет - в общем, вы получаете то, что получаете.
Тем не менее, веб-серверы часто возвращают документы вместе с кодами ошибок, которые иногда содержат полезную информацию, очень похожую на тот, который вы получили, объясняя проблему с сертификатом SSL.Для помощи в выявлении подобных проблем см. Скрипач - он покажет вам практически все, что нужно знать об ответах вашего сервера.
Что касается вашей конкретной ошибки, то трудно сказать;403 может указывать на несколько разных вещей.Но если вы получили ответ, указывающий на то, что что-то связано с SSL, возможно, вы просто имеете дело с плохим сертификатом или сертификатом с истекшим сроком действия (увидеть этот вопрос), или сервер может требовать безопасное соединение, но не получает его.Пробовали ли вы просто перейти по URL-адресу непосредственно в веб-браузере, просто чтобы посмотреть, появится ли у вас предупреждение о проблеме с сертификатом или что-то еще, кроме непосредственного ответа 403?