10

我有一个非常简单的需求——我的 C# 代码需要通过 HTTP 连接到远程服务器并下载一个字符串。一个微不足道的 GET 请求,仅此而已。

为了确保我的应用程序保持响应,我还想对操作施加超时(比如 3 秒)。

我的第一个想法是使用System.Net.WebClient,但这不支持任何超时。

然后我想试试旧的System.Net.HttpWebRequest,但是可惜 - 因为 .NET 4.5 它已被标记为过时

那么,我可以使用什么?我检查了System.Net.Http命名空间,但它只允许异步使用,强制使用Tasks,并且通常只添加十几个不同的抽象层而没有真正添加任何新功能(因为它在System.Net.HttpWebRequest下面使用相同的旧功能)

我不想要异步的东西,我不想涉及其他线程,我不想涉及 Tasks 框架,我不想要大量的包装器。

在 .NET 4.5 中执行此操作的正确方法是什么?

4

2 回答 2

14

HttpWebRequest类没有被弃用,只有它的构造函数被弃用。

引用文档

不要使用HttpWebRequest构造函数。使用该WebRequest.Create方法初始化新HttpWebRequest对象。如果统一资源标识符 (URI) 的方案是http://https://,则Create返回一个HttpWebRequest对象。

于 2013-01-31T13:59:14.487 回答
2

只有构造函数被弃用,而不是 HttpWebRequest 类本身。使用WebRequest.Create创建 HttpWebRequest 的实例。

于 2013-01-31T14:00:02.320 回答