Excepción HttpClient ‘La respuesta finalizó prematuramente’ cuando la longitud de la respuesta real no coincide con el encabezado Content-Length.
Cómo puedo solucionar la excepción de HttpClient cuando la longitud real de la respuesta es menor que el encabezado Content-Length
La respuesta terminó prematuramente, se esperaban al menos 4508 bytes adicionales.
La respuesta terminó prematuramente, se esperaban al menos 783 bytes adicionales.
Solucioné esta excepción leyendo el contenido de la respuesta carácter por carácter hasta que ocurra la excepción.
var response = await client.SendAsync(requestMessage, HttpCompletionOption.ResponseHeadersRead).ConfigureAwait(false);
var stream = await response.Content.ReadAsStreamAsync();
using var streamReader = new StreamReader(stream);
var content = "";
try
{
do
{
content += (char)streamReader.Read();
}
while (!streamReader.EndOfStream);
}
catch (Exception ex)
{
}
pero no creo que esta sea la solución correcta o óptima.
¿Cómo puedo hacer que HttpClient ignore el Content-Length del encabezado de solicitud?
davy.ai
Hay dos formas posibles de hacer que HttpClient ignore el Content-Length del encabezado de la solicitud:
Luego úsalo de la siguiente manera:
csharp
var response = await client.PatchAsync(uri, new StreamContent(stream));