2009-02-05 66 views
1

我正在发布一个httpwebrequst文章,但在HttpWebResponse即时通讯中得到一个错误代码403禁止。现在这个错误对我来说并不完全使用。我如何从HttpWebResponse获取详细信息

然后我试了一个测试程序(我没有源代码来:(),并用它来做同样的帖子,它返回一个代码403禁止,但也告诉我需要SSL SSL。有可能得到更多的“服务器端”细节出失败的HttpWebRequest的,只是在错误代码的?

谢谢


只是为了明确的事情了,它的罚款即时得到的403,我只是想知道为什么测试程序可以知道SSL需要SSL,因为我可以在webexception中看到类似的东西

+0

你可以添加更多关于你正在运行的环境的信息吗? – 2009-02-05 14:51:58

回答

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

有没有明确的方式要求更详细的信息,没有 - 基本上,你会得到你得到什么。也就是说,Web服务器通常会返回文档以及那些有时包含有用信息的错误代码,就像您使用SSL证书解释问题所得到的那样。为了帮助嗅探这样的问题,请查看Fiddler - 它会向您显示关于服务器响应的所有信息。

至于你的特定错误,很难说; 403可以指示几个不同的事情。但是,如果您收到回复指出与SSL有关的问题,那么您可能只是处理了错误或过期的证书(see this question),或者服务器可能需要安全连接但未收到证书。您是否试过用Web浏览器直接点击URL,以查看是否收到提示证书问题的警告,或者是否有任何非中介403响应?