HttpWebRequest, problemas conhecidos com o cancelamento de pedidos?
-
06-07-2019 - |
Pergunta
Existem problemas conhecidos com cancelamento de pedidos HttpWebRequest HTTP? Nós achamos que quando cancelar 4-5 pedidos, a próxima solicitação trava indefinidamente.
Se não há problemas conhecidos com isso, então eu provavelmente estou fazendo algo errado ... onde é um bom exemplo de recurso que mostra como isso funciona (uma solução completa, não um par de trechos de código)?
Se houver problemas conhecidos, o que posso fazer para trabalhar em torno deles, a fim de cancelar efetivamente como muitos pedidos como eu preciso?
Solução
Depois de cancelar o pedido, ter o cuidado de fechar o fluxo de resposta, caso contrário você terá vazamentos.
Eu costumo usar "usando" quando obter a resposta da solicitação da web para garantir que a resposta está fechado:
WebRequest request = WebRequest.Create("http://google.com");
using (WebResponse response = request.GetResponse())
{
//do my job
}
Dessa forma, mesmo se você cancelar o pedido, ou ele lança uma exceção durante a leitura resposta, o resposne e do fluxo será fechada.