如何避免WebException 403禁止反应?
-
08-10-2019 - |
题
我有一个应用程序,有时必须向服务器执行一些请求,以查看这些请求被正确阻止。换句话说, 预期的 服务器答案为403禁止。
使用这样的代码:
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(protectedPage);
httpRequest.Method = WebRequestMethods.Http.Head;
WebResponse response = HttpRequest.GetResponse();
一个 WebException
被扔在最后一行。
在分析代码时,尝试/捕获块中的此例外具有性能影响,我想避免。
有没有办法检查服务器响应,预计会有403,而无需捕获异常(但避免直接使用插座)?
解决方案
不幸的是,这是一个 烦人的例外 在框架中,没有办法避免它(同时仍在使用 HttpWebRequest
班级)。但是,正如High指出的那样,这种例外处理将需要纳秒秒,而Web请求本身将占用毫秒(充其量),因此不用担心。
这 WebException
对象有一个 Response
包含响应的属性;当您处理异常时,请务必处置 WebResponse
对象(避免泄漏连接)。
其他提示
在分析中花费的时间可能不是例外,而是网站的实际响应。
WebException.status属性将为您提供HTTP响应的状态代码,您可以根据此进行进一步处理。
不隶属于 StackOverflow