我有一个应用程序,有时必须向服务器执行一些请求,以查看这些请求被正确阻止。换句话说, 预期的 服务器答案为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响应的状态代码,您可以根据此进行进一步处理。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top