如何从HttpWebResponse获取详细信息

时间:2009-02-05 14:41:30

标签: c# httpwebrequest httpwebresponse

我正在发帖子httpwebrequst,但在HttpWebResponse中我得到一个错误代码403禁止。现在这个错误对我来说并不充分。

然后我尝试了一个测试程序(我没有源代码:()并用它来制作相同的帖子,它返回了代码403禁止但也告诉我需要SSL。所以它有可能从失败的httpwebrequest中获取更多“服务器端”细节,而这只是错误代码吗?

谢谢


只是为了清理事情。很好,我得到403,我只是想知道为什么测试程序可以告诉SSL,当我在webexception中看到类似的东西时需要SSL

2 个答案:

答案 0 :(得分:2)

如果由于协议错误而引发WebException,则为其响应 属性将包含从Web收到的实际响应 服务器。

try 
{
    // Do WebRequest
}
catch (WebException ex) 
{
    if (ex.Status == WebExceptionStatus.ProtocolError) 
    {
        HttpWebResponse response = ex.Response as HttpWebResponse;
        if (response != null)
        {
            // Process response
        }
    }
}

答案 1 :(得分:1)

没有明确的方式要求提供更详细的信息,不 - 基本上,你得到的是什么。

也就是说,Web服务器通常会返回文档以及有时包含有用信息的错误代码,就像您解释SSL证书问题的错误代码一样。如需帮助嗅出这样的问题,请查看Fiddler - 它将向您展示有关服务器响应的所有信息。

至于你的特殊错误,很难说; 403可以指示一些不同的事物。但是如果你收到一个表明与SSL有关的响应,你可能只是处理一个错误或过期的证书(see this question),或者服务器可能需要一个安全的连接而不是一个。您是否尝试过使用Web浏览器直接点击URL,只是为了看到是否收到提示,指出证书有问题,或者是否有非中介403响应?