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() );
}
}
私の問題は、例外を処理し、そのステータスやその他の問題の詳細を判断できないことです。
どのように例外を適切に処理し、発生したエラーを解釈するのですか?
応答の 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
);
}
}
}