У меня есть несколько Http-веб-запросов в разных циклах и т. Д. Веб-запросы получают данные от различных 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;
}
Я не вижу ничего плохого в своем коде, так как я правильно располагаю объекты и установил Timeout.Нужно ли увеличить время ожидания или я что-то упустил?
Может ли это также быть проблемой сети с нашей стороны?