HttpWebRequest, известные проблемы с отменой запросов?
-
06-07-2019 - |
Вопрос
Известны ли проблемы с отменой HTTP-запросов HttpWebRequest? Мы обнаруживаем, что при отмене 4-5 запросов следующий запрос зависает на неопределенное время.
Если с этим нет известных проблем, то я, вероятно, что-то делаю не так ... где хороший пример ресурса, который показывает, как это работает (полное решение, а не пара фрагментов кода)?
Если есть известные проблемы, что я могу сделать, чтобы обойти их, чтобы эффективно отменить столько запросов, сколько мне нужно?
Решение
После того как вы отмените запрос, позаботьтесь о том, чтобы закрыть поток ответов, иначе у вас будут утечки.
Я обычно использую " использую " когда получите ответ от веб-запроса, чтобы убедиться, что ответ закрыт:
WebRequest request = WebRequest.Create("http://google.com");
using (WebResponse response = request.GetResponse())
{
//do my job
}
Таким образом, даже если вы отмените запрос или он выдаст исключение во время чтения ответа, resposne и его поток будут закрыты.