gpt4 book ai didi

.net - WebClient 抛出异常前如何响应 StatusCode

转载 作者:可可西里 更新时间:2023-11-01 16:19:54 25 4
gpt4 key购买 nike

我们正在编写一组类似 REST 的服务,我们将错误作为不同的 StatusCodes 返回。

在我们的客户端应用程序中,如果我们的工作流程不需要我们捕获并抛出异常来发现错误代码,我们更愿意这样做。

有没有办法告诉 WebClient 或 HttpWebRequest 在遇到非 200 的 StatusCode 时停止抛出异常?

最佳答案

没有。设计说明除 200 或 201 以外的任何其他数字都是异常(exception)。

HttpStatusCode httpStatusCode;
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://example.org/resource");
try
{
using (HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse())
{
// handle 200/201 case
}
}
catch (WebException webException)
{
if (webException.Response != null)
{
HttpWebResponse httpWebExceptionResponse = (HttpWebResponse)webException.Response;
switch (httpWebExceptionResponse.StatusCode)
{
case 304: // HttpStatusCode.NotModified
break;
case 410: // HttpStatusCode.Gone
break;
case 500: // HttpStatusCode.InternalServerError
break;
// etc
}
}
else
{
//did not contact host. Invalid host name?
}
}
return httpStatusCode;

关于.net - WebClient 抛出异常前如何响应 StatusCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1307188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com