C# WebRequest WebResponse操作已超时
我在各种循环中有几个Http Web请求等。Web请求从各种API获取数据 这些似乎在某些时候起作用,但大部分时间(最近)我都会收到超时异常错误(操作已超时),并且不确定原因 我承认,每隔一段时间或每隔一段时间,您就会出现超时错误,但这种情况发生得太频繁了 以下是我的两个WebRequest代码:C# WebRequest WebResponse操作已超时,c#,http,timeout,webrequest,webresponse,C#,Http,Timeout,Webrequest,Webresponse,我在各种循环中有几个Http Web请求等。Web请求从各种API获取数据 这些似乎在某些时候起作用,但大部分时间(最近)我都会收到超时异常错误(操作已超时),并且不确定原因 我承认,每隔一段时间或每隔一段时间,您就会出现超时错误,但这种情况发生得太频繁了 以下是我的两个WebRequest代码: public static EventList getEvents() { Uri myURI = new Uri("http://feeds.betway.com/e
public static EventList getEvents()
{
Uri myURI = new Uri("http://feeds.betway.com/events?key=XXX&keywords=horse-racing,uk-and-ireland&and=true");
WebRequest webRequest = WebRequest.Create(myURI);
webRequest.Timeout = 3000;
using (WebResponse webResponse = webRequest.GetResponse())
{
using (Stream stream = webResponse.GetResponseStream())
{
using (var reader = XmlReader.Create(stream))
{
XmlSerializer serializer = new XmlSerializer(typeof(EventList));
EventList data = (EventList)serializer.Deserialize(reader);
return data;
}
}
}
}
public static List<WilliamHillData.Event> GetAllCompetitionEvents(string compid)
{
string res = "";
Uri myURI = new Uri("https://gw.whapi.com/v2/sportsdata/competitions/" + compid + "/events/?&sort=startDateTime");
WebRequest webRequest = WebRequest.Create(myURI);
webRequest.Headers.Add("Content-Type", "application/json");
webRequest.Headers.Add("apiKey", "xxx");
webRequest.Timeout = 2000;
using (WebResponse webResponse = webRequest.GetResponse())
{
using (Stream stream = webResponse.GetResponseStream())
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
res = reader.ReadToEnd();
}
}
JObject jobject = JObject.Parse(res);
List<WilliamHillData.Event> list = jobject["events"].ToObject<List<WilliamHillData.Event>>();
return list;
}
publicstaticeventlist getEvents()
{
Uri myURI=新Uri(“http://feeds.betway.com/events?key=XXX&keywords=horse-赛车,英国和爱尔兰&and=true“;
WebRequest WebRequest=WebRequest.Create(myURI);
webRequest.Timeout=3000;
使用(WebResponse WebResponse=webRequest.GetResponse())
{
使用(Stream=webResponse.GetResponseStream())
{
使用(var reader=XmlReader.Create(stream))
{
XmlSerializer serializer=新的XmlSerializer(typeof(EventList));
EventList数据=(EventList)序列化程序。反序列化(读取器);
返回数据;
}
}
}
}
公共静态列表GetAllCompetitionEvents(字符串compid)
{
字符串res=“”;
Uri myURI=新Uri(“https://gw.whapi.com/v2/sportsdata/competitions/“+compid+”/events/?&sort=startDateTime”);
WebRequest WebRequest=WebRequest.Create(myURI);
添加(“内容类型”、“应用程序/json”);
webRequest.Headers.Add(“apiKey”、“xxx”);
webRequest.Timeout=2000;
使用(WebResponse WebResponse=webRequest.GetResponse())
{
使用(Stream=webResponse.GetResponseStream())
{
StreamReader=新的StreamReader(stream,Encoding.UTF8);
res=reader.ReadToEnd();
}
}
JObject=JObject.Parse(res);
List List=jobject[“事件”].ToObject();
退货清单;
}
我看不出我的代码有任何错误,因为我正确地处理了对象并设置了超时。超时是否需要增加,或者我是否遗漏了什么
这也可能是我们这边的网络问题吗?2秒是一个很短的超时时间,我认为默认值是10秒,另外,您有不同的超时值,一个是3000,一个是2000。我已将所有超时设置为5000。我会看看会发生什么。也许你的连接速度会受到限制。您是否确保每个时间段不会发送太多请求?2秒是一个很短的超时,我认为默认值是10,而且,您有不同的超时值,一个是3000,一个是2000。我已将所有超时设置为5000。我会看看会发生什么。也许你的连接速度会受到限制。您是否确保每个时间段不会发送太多请求?