У меня очень простая потребность - мой код С# должен подключаться к удаленному серверу через HTTP и загружать строку. Тривиальный запрос GET, не более того.
Чтобы мое приложение оставалось отзывчивым, я также хочу наложить таймаут (скажем, 3 секунды) на операцию.
Моя первая мысль заключалась в том, чтобы использовать System.Net.WebClient
, но это не поддерживает никаких тайм-аутов.
Затем мне захотелось попробовать старый добрый System.Net.HttpWebRequest
, но, увы, с .NET 4.5 он был отмечен как устаревшие!
Итак, что я могу использовать? Я проверил System.Net.Http
пространство имен, но оно позволяет только асинхронное использование, заставляет использовать Task
s, и, как правило, добавляет только дюжину различных уровней абстракции, не добавляя при этом никаких новых функций (поскольку в любом случае он использует тот же старый System.Net.HttpWebRequest
)
Мне не нужен асинхронный материал, я не хочу привлекать другие потоки, я не хочу привлекать рамки Tasks, мне не нужны тонны оберток.
Каков правильный способ сделать это в .NET 4.5?