Как изменить тайм-аут на.NET объект WebClient

Когда я запустил поблочное тестирование, я запустил с NUnit, поскольку просто настроить и использовать, в настоящее время я использую созданный в исполнителе тестов, который идет Resharper, тот способ, которым я могу легко зеркально отразить между кодом и результатами испытаний. Инцидентным образом NUnit обнаруживает, когда Вы скомпилировали свой код, таким образом, Вы не должны делать никакого обновления в NUnit. Resharper автоматически делает сборку, когда Вы принимаете решение запустить определенный тест.

217
задан Ryall 24 November 2009 в 01:59
поделиться

2 ответа

Вам нужно использовать HttpWebRequest вместо WebClient , поскольку вы не можете установить тайм-аут для WebClient , не увеличивая его ( хотя он использует HttpWebRequest ). Использование HttpWebRequest вместо этого позволит вам установить тайм-аут.

20
ответ дан 23 November 2019 в 04:14
поделиться

Как говорит Сони, используя System.Net.HttpWebRequest и установив тайм-аут вместо использования System.Net.WebClient .

Однако вы не можете установить значение бесконечного тайм-аута (оно не поддерживается, и попытка сделать это вызовет исключение ArgumentOutOfRangeException ) .

Я бы рекомендовал сначала выполнить HTTP-запрос HEAD и проверить возвращаемое значение заголовка Content-Length , чтобы определить количество байтов в загружаемом файле, а затем установка соответствующего значения тайм-аута для последующего запроса GET или просто указание очень большого значения тайм-аута, превышения которого вы никогда не ожидаете.

7
ответ дан 23 November 2019 в 04:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: