我有一个非常简单的需求 - 我的 C# 代码需要通过 HTTP 连接到远程服务器并下载字符串。一个微不足道的 GET 请求,仅此而已。
为了确保我的应用程序保持响应,我还想对操作施加超时(例如 3 秒)。
我的第一个想法是使用 System.Net.WebClient
,但这不支持任何超时。
然后我想尝试旧的System.Net.HttpWebRequest
,但唉 - 从 .NET 4.5 开始,它已被标记为过时!
那么,我可以使用什么?我检查了System.Net.Http
命名空间,但它只允许异步使用,强制使用 Task
s,并且通常只添加十几个不同的抽象层,而不会真正添加任何新功能(因为它使用相同的旧System.Net.HttpWebRequest
无论如何)
其他线程,我不想涉及任务框架,我不想要大量的包装器。
在 .NET 4.5 中执行此操作的正确方法是什么?
HttpWebRequest
类没有被弃用,只有它的构造函数被弃用。
引用文档:
不要使用
HttpWebRequest
构造函数。使用WebRequest.Create
方法初始化新的HttpWebRequest
对象。如果统一资源标识符 (URI) 的方案是http://
或https://
,则Create
返回一个HttpWebRequest
对象。
构造函数,而不是 HttpWebRequest 类本身。使用 WebRequest.Create 创建 HttpWebRequest 的实例。