我想使一个Web服务请求调用一个第三方网站,谁的服务器是有点不可靠的。有没有一种方法可以让我在一个请求到该网站设置超时?事情是这样的伪code:
尝试// 1分钟
{
//使Web请求在这里
使用(Web客户端的客户端新的Web客户端())//...etc。
}
抓住
{
}
解决方案
您可以使用的超时属性:
VAR请求=(HttpWebRequest的)WebRequest.Create(http://www.google.com);
request.Timeout = 1000; //超时后1000毫秒
使用(VAR流= request.GetResponse()。GetResponseStream())
使用(VAR读卡器=新的StreamReader(流))
{
Console.WriteLine(reader.ReadToEnd());
}
更新:
要回答有关 XElement.Load(URI)的评论部分的问题
,你可以做到以下几点:
VAR请求=(HttpWebRequest的)WebRequest.Create(http://stackoverflow.com/feeds);
request.Timeout = 1000; //超时后1000毫秒
使用(VAR流= request.GetResponse()。GetResponseStream())
使用(VAR读卡器=新的StreamReader(流))
{
VAR XEL = XElement.Load(读卡器);
}
I am trying to make a web service request call to a third part web site who's server is a little unreliable. Is there a way I can set a timeout on a request to this site? Something like this pseudo code:
try // for 1 minute
{
// Make web request here
using (WebClient client new WebClient()) //...etc.
}
catch
{
}
解决方案
You could use the Timeout property:
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());
}
UPDATE:
To answer the question in the comment section about XElement.Load(uri)
you could do the following:
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);
}