es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Qué sucede cuando HttpClient.PostAsync no se espera?

Estoy inspeccionando algún código que parece arrojar

System.Net.Sockets.SocketException: Una conexión existente fue cerrada forzosamente por el host remoto en ocasiones.

Utilizamos la biblioteca Polly para reintentos automáticos en las solicitudes de HttpClient.
– Estoy empezando a preguntarme si tiene algo que ver con el HttpClient.PostAsync que no se está esperando abajo.
– ¿Eso podría causar alguna agotamiento de conexión?

Se agradecería cualquier orientación.


var payload = JsonConvert.SerializeObject(data);
var response = await _pollyPolicy.ExecuteAsync(() => _httpClient.PostAsync(_endpoint, new StringContent(payload, Encoding.UTF8, "application/json")));

en comparación con lo que “creo” que debería ser (nota la adición de async await):

var payload = JsonConvert.SerializeObject(data);
var response = await _pollyPolicy.ExecuteAsync(async () => await _httpClient.PostAsync(_endpoint, new StringContent(payload, Encoding.UTF8, "application/json")));

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El primer fragmento de código sugiere que el método HttpClient.PostAsync no está siendo esperado, lo que podría causar el agotamiento de la conexión. El uso de Polly para autoreintentos es una buena práctica, pero puede no ser efectivo si el método subyacente PostAsync no se espera.

    El segundo fragmento de código, que incluye las palabras clave async y await, parece ser una mejor implementación ya que espera la llamada al método PostAsync. Esto aseguraría el manejo adecuado de la respuesta del servidor remoto y podría resolver el mensaje de error System.Net.Sockets.SocketException.

    Por lo tanto, se recomienda utilizar el segundo fragmento de código y asegurarse de esperar adecuadamente todas las solicitudes de HttpClient para evitar el agotamiento de la conexión y otros posibles problemas.

Comments are closed.