0

我是 C# 的新手。我注意到,当服务器返回 200 OK 以外的任何内容时,我得到一个

例外。以下是 404 错误的示例。

未处理的异常:System.Net.WebException:远程服务器返回错误:(404)未找到。

为什么 C# 应该生成异常?这意味着我必须使用 try / catch 块。

我见过的例子都没有提到这个问题。

提前感谢您的帮助。

4

4 回答 4

3

是的,您需要使用try/catch块,因为 GetResponse() 会针对 4xx-5xx 范围内的状态代码抛出异常。

try
{
    response = (HttpWebResponse)request.GetResponse();
    code = response.StatusCode;
}
catch (WebException we)
{
    code = ((HttpWebResponse)we.Response).StatusCode;
}
于 2013-10-15T08:45:42.147 回答
0

是的,它引发了一个例外。但是您仍然可以从异常对象中获得响应和状态。所以使用 try/catch,并在 catch 块中获取您需要的信息。

于 2013-10-15T08:47:57.317 回答
0

如果你真的不想使用 try-catch,我建议你阅读下面的文章:修复 WebRequest 的抛出异常而不是返回状态的愿望

于 2013-10-15T08:48:58.517 回答
0

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

或 ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; //TLS 1.2 或 ServicePointManager.SecurityProtocol = (SecurityProtocolType)768; //TLS 1.1

于 2020-04-03T19:24:23.870 回答