我正在使用一个twitter库,该库内部使用HttpWebRequest
向twitter API发出请求。出于某种奇怪的原因,请求有时需要花费大量时间(约10分钟)才能完成。
HttpWebRequest
对象未由库公开。
有没有办法为请求指定全局超时和读写超时,可能是通过app.config?
很遗憾,目前不可能。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=连接建立后尝试读取或写入数据所花费的时间