Saltar al contenido

¿Por qué usar HttpClient para la conexión síncrona?

Luego de mucho batallar hemos dado con el arreglo de esta traba que ciertos los lectores de nuestra web han tenido. Si tienes algún detalle que aportar puedes compartir tu información.

Solución:

pero lo que estoy haciendo es puramente sincrónico

podrías usar HttpClient para solicitudes sincrónicas muy bien:

using (var client = new HttpClient())

    var response = client.GetAsync("http://google.com").Result;

    if (response.IsSuccessStatusCode)
    
        var responseContent = response.Content; 

        // by calling .Result you are synchronously reading the result
        string responseString = responseContent.ReadAsStringAsync().Result;

        Console.WriteLine(responseString);
    

En cuanto a por qué deberías usar HttpClient sobre WebRequest está preocupado, bueno, HttpClient es el nuevo chico en el bloque y podría contener mejoras sobre el antiguo cliente.

Reiteraría la respuesta de Donny V. y la de Josh

“La única razón por la que no usaría la versión asíncrona es si estuviera tratando de admitir una versión anterior de .NET que aún no tiene soporte asíncrono incorporado”.

(y votar si tuviera la reputación).

No puedo recordar la última vez, si es que alguna vez, agradecí el hecho de que HttpWebRequest lanzó excepciones para códigos de estado> = 400. Para solucionar estos problemas, debe detectar las excepciones de inmediato y asignarlas a algunos mecanismos de respuesta no excepcionales. en su código… aburrido, tedioso y propenso a errores en sí mismo. Ya sea que se esté comunicando con una base de datos o implementando un proxy web personalizado, “casi” siempre es deseable que el controlador Http simplemente le diga a su código de aplicación lo que se devolvió, y deje que usted decida cómo comportarse.

Por lo tanto, es preferible HttpClient.

Si está creando una biblioteca de clases, quizás a los usuarios de su biblioteca les gustaría usar su biblioteca de forma asíncrona. Creo que esa es la razón más importante allí mismo.

Tampoco sabe cómo se utilizará su biblioteca. Quizás los usuarios procesarán montones y montones de solicitudes, y hacerlo de forma asincrónica ayudará a que funcione de manera más rápida y eficiente.

Si puede hacerlo de forma sencilla, trate de no poner la carga sobre los usuarios de su biblioteca tratando de hacer que el flujo sea asíncrono cuando puede encargarse de ello por ellos.

La única razón por la que no usaría la versión asíncrona es si estuviera tratando de admitir una versión anterior de .NET que aún no tiene soporte asíncrono incorporado.

Aquí puedes ver las reseñas y valoraciones de los lectores

Tienes la opción de confirmar nuestro cometido dejando un comentario o dejando una valoración te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *