C# 中 Timeout 的处理
前言
最近在项目中要实现一个功能,是关于 Timeout
的,主要是要在要在 TCP 连接建立的时间 和 整个请求完成的时间,在这两个时间层面上,如果超出了设置的时间,就抛出异常,程序中断。
研究了一下项目的代码中,发现在使用HTTP协议,发送请求时,主要用的是微软的 Microsoft.Net.HttpWebRequest
这个类来发起请求和接收请求的。当时我隐约记得这个类怎么有点熟悉呀,好像还有 WebRequst
和 HttpClient
这两个把,还没开始真正开始去了解Timeout
在HttpWebRequest
中 如何实现的,我先去看了看这三者到底有何不同?
WebRequest , HttpWebRequest , HttpClient
WebRequest 是 一个抽象类,是HttpWebRequest
的父类。是.NET
中请求和获取网络中的数据的一个类。
HttpWebRequest 是WebReques
t 的一个实现,不仅对WebRequest
中的属性和方法进行了支持,而且还有额外的方法通过Http
协议来和服务端交互。
上面那两个现在在微软官方文档上都不推荐使用了,