本文介绍了在.NET Web请求超时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想使一个Web服务请求调用一个第三方网站,谁的服务器是有点不可靠的。有没有一种方法可以让我在一个请求到该网站设置超时?事情是这样的伪code:
尝试// 1分钟 { //使Web请求在这里 使用(Web客户端的客户端新的Web客户端())//...etc。 } 抓住 { }解决方案
您可以使用的超时属性:
VAR请求=(HttpWebRequest的)WebRequest.Create(www.google); request.Timeout = 1000; //超时后1000毫秒 使用(VAR流= request.GetResponse()。GetResponseStream()) 使用(VAR读卡器=新的StreamReader(流)) { Console.WriteLine(reader.ReadToEnd()); }
更新:
要回答有关 XElement.Load(URI)的评论部分的问题,你可以做到以下几点:
VAR请求=(HttpWebRequest的)WebRequest.Create(stackoverflow/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("www.google"); 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("stackoverflow/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); }
更多推荐
在.NET Web请求超时
发布评论