Как получить подробную информацию с HttpWebResponse - PullRequest
1 голос
/ 05 февраля 2009

Я делаю пост httpwebrequst, но в HttpWebResponse я получаю код ошибки 403 запрещено. Теперь эта ошибка не очень полезна для меня.

Затем я попробовал тестовую программу (что у меня нет исходного кода для :() и использовал ее для создания того же поста, и он вернулся с кодом 403, запрещенным, но также сказал мне, что SSL был необходим. можно получить больше "серверных" деталей из неудачного httpwebrequest, который просто код ошибки?

спасибо


Просто чтобы прояснить ситуацию. Хорошо, что я получаю 403, мне просто интересно, почему тестовая программа может сказать SSL, что SSL нужен, когда я вижу что-то подобное в webexception

Ответы [ 2 ]

2 голосов
/ 05 февраля 2009

Если WebException выбрасывается из-за ошибки протокола, его Ответ свойство будет содержать фактический ответ, полученный из Интернета сервер.

try 
{
    // Do WebRequest
}
catch (WebException ex) 
{
    if (ex.Status == WebExceptionStatus.ProtocolError) 
    {
        HttpWebResponse response = ex.Response as HttpWebResponse;
        if (response != null)
        {
            // Process response
        }
    }
}
1 голос
/ 05 февраля 2009

Нет явного способа запросить более подробную информацию, нет - в основном, вы получаете то, что получаете.

Тем не менее, веб-серверы часто возвращают документы вместе с теми кодами ошибок, которые иногда содержат полезную информацию, подобно тому, который вы получили, объясняя проблему с сертификатом SSL. Если вам нужна помощь в поиске подобных проблем, посмотрите Fiddler - он покажет вам практически все, что нужно знать об ответах вашего сервера.

Что касается вашей конкретной ошибки, трудно сказать; 403 может указывать на несколько разных вещей. Но если вы получили ответ, указывающий что-то связанное с SSL, возможно, вы просто имеете дело с плохим сертификатом или сертификатом с истекшим сроком действия ( см. Этот вопрос ), или серверу может потребоваться безопасное соединение, но он не один. Вы пытались просто нажать URL-адрес напрямую с помощью веб-браузера, просто чтобы увидеть, появляется ли вам сообщение с предупреждением, указывающим на проблему с сертификатом, или что-то иное, чем немедленный ответ 403?

...