Console Application HTTP POST time infinite

API

.NET

C#

25/02/2019

Boa tarde
Preciso consumir uma web api com grande volume de dados, então montei esse métodos:
 using (HttpClient client = new HttpClient())
            {
                client.BaseAddress = new Uri(destinationUrl);
                var buffer = System.Text.Encoding.UTF8.GetBytes(requestXml);
                using (var byteContent = new ByteArrayContent(buffer))
                {
                    byteContent.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/xml");
                    using (var result = client.PostAsync(destinationUrl, byteContent).Result)
                    {
                        var contents = result.Content.ReadAsStringAsync().Result;
                        return contents;
                    }
                }
            }


Funciona normal para uma transação pequena, se passar de 5 minutos dá pau, no postman roda normal.
Alguém pode me ajudar?
Lucas Vargas

Lucas Vargas

Curtidas 0

Respostas

Wagner Silva

Wagner Silva

25/02/2019

Utilize a propriedade Timeout do HttpClient, abaixo deixo um exemplo para deixar o timeout infinito.

var http = new HttpClient
{
          Timeout = TimeSpan.FromHours(Timeout.Infinite)
};
GOSTEI 0
Lucas Vargas

Lucas Vargas

25/02/2019

Utilize a propriedade Timeout do HttpClient, abaixo deixo um exemplo para deixar o timeout infinito.

var http = new HttpClient
{
          Timeout = TimeSpan.FromHours(Timeout.Infinite)
};


Opa! Valeu pela resposta, mas nao consegui implementar
retorna esse erro
System.ArgumentOutOfRangeException: Argumento especificado estava fora do intervalo de valores válidos.
Nome do parâmetro: value
em System.Net.Http.HttpClient.set_Timeout(TimeSpan value)
GOSTEI 0
Lucas Vargas

Lucas Vargas

25/02/2019

Utilize a propriedade Timeout do HttpClient, abaixo deixo um exemplo para deixar o timeout infinito.

var http = new HttpClient
{
          Timeout = TimeSpan.FromHours(Timeout.Infinite)
};


Tentei colocar -1 ao invés de Timeout.Infinite e rodou ,mas depois deu outro erro

- System.AggregateException: Um ou mais erros. ---> System.Net.Http.HttpRequestException: Ocorreu um erro ao copiar o conteúdo para um fluxo. ---> System.IO.IOException: Falha na operação de leitura, consulte a exceção interna. ---> System.Net.WebException: A solicitação foi anulada: A conexão foi fechada de modo inesperado.
GOSTEI 0
POSTAR