[我正在尝试确定使用C#和.NET 4.5出现404错误时,response
的HttpClient
方法返回的GetAsync
。
目前,我只能告诉您发生了错误,而不是错误状态,例如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() ); } }
我的问题是我无法处理异常,无法确定异常的状态以及发生错误的其他详细信息。
我将如何正确处理异常并解释发生了什么错误?
我正在尝试确定使用C#和.NET 4.5出现404错误时HttpClient的GetAsync方法返回的响应。目前,我只能说发生了错误,而不是说...
您可以简单地检查响应的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
);
}
}
}
是一个response.StatusCode
枚举。