c# - respuesta - httpstatuscode
Cómo determinar un estado de respuesta 404 cuando se utiliza el HttpClient.GetAsync() (1)
Estoy tratando de determinar la response
devuelta por el método GetAsync
HttpClient
en el caso de errores 404 usando C # y .NET 4.5.
Actualmente, solo puedo decir que se ha producido un error en lugar del estado del error, como 404 o timeout.
Actualmente mi código mi código se ve así:
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() );
}
}
Mi problema es que no puedo manejar la excepción y determinar su estado y otros detalles de lo que salió mal.
¿Cómo manejaría adecuadamente la excepción e interpretaría qué errores ocurrieron?
Simplemente puede verificar la propiedad StatusCode
de la respuesta:
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
);
}
}
}