我正在使用XML阅读器读取RSS。
如果网址有问题,会花费60秒才能失败。我该如何指定超时时间?
using (XmlReader reader = XmlReader.Create(url, settings))
我不知道是否可能更改XmlReader的超时时间,但也许你可以尝试另一种方法:
使用WebRequest获取xml(它具有Timeout属性),在获取到xml后将其提供给XmlReader:
WebRequest request = WebRequest.Create(url);
request.Timeout = 5000;
using (WebResponse response = request.GetResponse())
using (XmlReader reader = XmlReader.Create(response.GetResponseStream()))
{
// Blah blah...
}
您可以创建自己的 WebRequest 并从响应流中创建 XmlReader。有关详细信息,请参见此问题的响应:
另一种选择是这样做
var settings = new XmlReaderSettings();
settings.XmlResolver = resolver;
// Create the reader.
XmlReader reader = XmlReader.Create("http://serverName/data/books.xml", settings);
resolver
实例是一个自定义类,根据下面链接中的文档描述更改 URL 获取行为。