Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WebRequest WebResponse操作已超时_C#_Http_Timeout_Webrequest_Webresponse - Fatal编程技术网

C# WebRequest WebResponse操作已超时

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

我在各种循环中有几个Http Web请求等。Web请求从各种API获取数据

这些似乎在某些时候起作用,但大部分时间(最近)我都会收到超时异常错误(操作已超时),并且不确定原因

我承认,每隔一段时间或每隔一段时间,您就会出现超时错误,但这种情况发生得太频繁了

以下是我的两个WebRequest代码:

    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。我会看看会发生什么。也许你的连接速度会受到限制。您是否确保每个时间段不会发送太多请求?