我有一个非常简单的需求 - 我的C#代码需要通过HTTP连接到远程服务器并下载一个字符串。只是一个微不足道的GET请求,没有更多的要求。
为了确保我的应用程序保持响应,在操作上我还想强制执行一个超时时间(比如3秒)。
我的第一个想法是使用
然后我想尝试一下老式的
所以,我能用什么?我查看了
我不想要异步的东西,我不想涉及其他线程,我不想涉及任务框架,我不想有大量的包装器。
在.NET 4.5中,正确的做法是什么?
为了确保我的应用程序保持响应,在操作上我还想强制执行一个超时时间(比如3秒)。
我的第一个想法是使用
System.Net.WebClient
,但它不支持任何超时。然后我想尝试一下老式的
System.Net.HttpWebRequest
,但遗憾的是-自.NET 4.5以来,它已经被标记为过时!所以,我能用什么?我查看了
System.Net.Http
命名空间,但它只允许异步使用,强制使用Task
并且通常只添加了一打不同的抽象层而没有真正添加任何新功能(因为它在底层仍然使用相同的System.Net.HttpWebRequest
)。我不想要异步的东西,我不想涉及其他线程,我不想涉及任务框架,我不想有大量的包装器。
在.NET 4.5中,正确的做法是什么?
HttpWebRequest
被弃用了,而是它的构造函数。不要使用 HttpWebRequest 构造函数。使用 WebRequest.Create 方法来初始化新的 HttpWebRequest 对象。
- GSergasync
和await
时,你至少应该考虑一下;-)。C#和Visual Basic的未来。来吧,为了Anders去尝试一下吧... - Wim Ombelets