gpt4 book ai didi

c# - 使用 HttpClient.GetAsync() 时如何确定 404 响应状态

转载 作者:IT王子 更新时间:2023-10-29 04:14:24 36 4
gpt4 key购买 nike

我正在尝试使用 C# 和 .NET 4.5 确定 HttpClientGetAsync 方法在出现 404 错误的情况下返回的 response .

目前我只能知道发生了错误,而不能知道错误的状态,例如 404 或超时。

目前我的代码是这样的:

    static void Main(string[] args)
{
dotest("http://error.123");
Console.ReadLine();
}

static async void dotest(string url)
{
HttpClient client = new HttpClient();

HttpResponseMessage response = new HttpResponseMessage();

try
{
response = await client.GetAsync(url);

if (response.IsSuccessStatusCode)
{
Console.WriteLine(response.StatusCode.ToString());
}
else
{
// problems handling here
string msg = response.IsSuccessStatusCode.ToString();

throw new Exception(msg);
}

}
catch (Exception e)
{
// .. and understanding the error here
Console.WriteLine( e.ToString() );
}
}

我的问题是我无法处理异常并确定其状态和其他出错的详细信息。

我将如何正确处理异常并解释发生了什么错误?

最佳答案

您可以简单地检查 StatusCode响应的属性:

static async void dotest(string url)
{
using (HttpClient client = new HttpClient())
{
HttpResponseMessage response = await client.GetAsync(url);

if (response.IsSuccessStatusCode)
{
Console.WriteLine(response.StatusCode.ToString());
}
else
{
// problems handling here
Console.WriteLine(
"Error occurred, the status code is: {0}",
response.StatusCode
);
}
}
}

关于c# - 使用 HttpClient.GetAsync() 时如何确定 404 响应状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14646052/

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