Ale*_*nza 5 c# proxy httpwebrequest httpwebresponse system.net.webexception
如何检测WebRequest由于Web代理错误而不是目标Web服务器错误而失败?
try
{
var request = (HttpWebRequest)WebRequest.Create("http://www.example.com");
request.Proxy = new WebProxy("localhost");
var response = request.GetResponse();
return response.GetResponseStream();
}
catch(WebException webex)
{
//Detect proxy failure
}
Run Code Online (Sandbox Code Playgroud)
这很难。以下是一些建议:
webex.Response.ResponseUri属性包含代理服务器的 URI,而不是您尝试联系的服务器。webex.Response.StatusCode属性总是指代理问题,例如ProxyAuthenticationRequired。不幸的是,大多数状态可能指的是代理错误或服务器错误。webex.Response.Headers集合包含您认为是由代理服务器生成的非标准条目。例如,Squid 代理返回 header "X-Squid-Error",以及它自己专有的一组状态。webex.Response.ResponseStream流包含 HTML 或纯文本错误消息,其格式您可以识别为由代理服务器生成。您可以测试它是否包含代理服务器的 URI。在 catch 块中,确保记录WebException对象的完整详细信息,包括上面提到的所有属性。然后,您可以分析日志数据并针对代理错误开发准确的测试。
| 归档时间: |
|
| 查看次数: |
3197 次 |
| 最近记录: |