son respuesta que los injector httpstatuscode estado errores error códigos código codigos codigo 4xx c# exception-handling httpclient .net-4.5 async-await

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 ); } } }