如何指定全局HttpWebRequest超时

本文关键字:超时 HttpWebRequest 全局 何指定 | 更新日期: 2023-09-27 18:20:53

我正在使用一个twitter库,该库内部使用HttpWebRequest向twitter API发出请求。出于某种奇怪的原因,请求有时需要花费大量时间(约10分钟)才能完成。

HttpWebRequest对象未由库公开。

有没有办法为请求指定全局超时和读写超时,可能是通过app.config

如何指定全局HttpWebRequest超时

很遗憾,目前不可能。HttpWebRequest的构造函数具有此值的硬编码引用源。

超时以毫秒为单位,因此2000ms仅为2秒。

System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create("URL");
req.Timeout = Convert.ToInt32(ConfigurationManager.AppSettings["timeOut"]);
Req.ReadWriteTimeout = Convert.ToInt32(ConfigurationManager.AppSettings["readWriteTimeout "]);

App.config

<appSettings>
<add key="timeOut" value="200" />
<add key="readWriteTimeout " value="10000" />
</appSettings>

Timeout=尝试建立连接所花费的时间(不包括查找时间)

ReadWriteTimeout=连接建立后尝试读取或写入数据所花费的时间