1

我正在发布 httpwebrequst,但在 HttpWebResponse 中我收到错误代码 403 禁止。现在这个错误对我来说不是很充分。

然后我尝试了一个测试程序(我没有 :() 的源代码并用它来发布相同的帖子,它返回了一个禁止的代码 403 但还告诉我需要 SSL。所以有可能得到更多“服务器端”详细信息来自失败的 httpwebrequest,只是错误代码?

谢谢你


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

4

2 回答 2

2

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

try 
{
    // Do WebRequest
}
catch (WebException ex) 
{
    if (ex.Status == WebExceptionStatus.ProtocolError) 
    {
        HttpWebResponse response = ex.Response as HttpWebResponse;
        if (response != null)
        {
            // Process response
        }
    }
}
于 2009-02-05T14:50:05.897 回答
1

没有明确的方式来询问更详细的信息,不——基本上,你得到了你得到的。

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

至于你的具体错误,很难说;403 可以表示一些不同的事情。但是,如果您收到一个表明与 SSL 相关的响应,您可能只是在处理一个错误或过期的证书(请参阅这个问题),或者服务器可能需要安全连接但没有得到一个。您是否尝试过直接使用 Web 浏览器访问 URL,只是为了查看您是否收到提示证书问题的警告,或者除了未经调解的 403 响应之外的任何内容?

于 2009-02-05T14:50:38.920 回答