我有一个非常简单的需求 – 我的C#代码需要通过HTTP连接到远程服务器并下载一个字符串.一个琐碎的GET请求,没有了.
为了确保我的应用程序保持响应,我还想对操作施加超时(例如3秒).
我的第一个想法是使用System.Net.WebClient
,但是不支持任何超时.
然后我想尝试旧的System.Net.HttpWebRequest
,但唉 – 从.NET 4.5它是been marked as obsolete!
那我可以用什么?我查出了System.Net.Http
的命名空间,但它只允许异步使用,强制使用Task
s,通常只增加了十几个不同层次的抽象,而无需真正添加任何新的功能(因为它使用了相同的旧版本System.Net.HttpWebRequest
)
我不想异步的东西,我不想涉及其他线程,我不想涉及到Tasks框架,我不想要吨的包装器.
在.NET 4.5中正确的方法是什么?
解决方法
HttpWebRequest类不被弃用,只有它的构造函数是.
Do not use the 07001 constructor. Use the 07002 method to initialize new
HttpWebRequest
objects. If the scheme for the Uniform Resource Identifier (URI) ishttp://
orhttps://
,Create
returns anHttpWebRequest
object.