.NET中的Web请求超时

Vic*_*tor 11 .net c# asp.net-mvc web-services

我正在尝试向第三方网站发送Web服务请求,该网站的服务器有点不可靠.有没有办法可以在对此站点的请求上设置超时?像这样的伪代码:

try // for 1 minute
{
    // Make web request here
    using (WebClient client new WebClient()) //...etc.
}
catch
{
}
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 24

您可以使用Timeout属性:

var request = (HttpWebRequest)WebRequest.Create("http://www.google.com");
request.Timeout = 1000; //Timeout after 1000 ms
using (var stream = request.GetResponse().GetResponseStream())
using (var reader = new StreamReader(stream))
{
    Console.WriteLine(reader.ReadToEnd());
}
Run Code Online (Sandbox Code Playgroud)

更新:

要回答评论部分中的问题,XElement.Load(uri)您可以执行以下操作:

var request = (HttpWebRequest)WebRequest.Create("http://stackoverflow.com/feeds");
request.Timeout = 1000; //Timeout after 1000 ms
using (var stream = request.GetResponse().GetResponseStream())
using (var reader = new StreamReader(stream))
{
    var xel = XElement.Load(reader);
}
Run Code Online (Sandbox Code Playgroud)