Я создал программу, которая загружает данные из HTTP-запроса. Необходимо загрузить его через каждые 1 сек. Или 0,25 с..Я продолжаю получать ошибки «Timed Out» на C# WebRequest
Однако я обнаружил, что многие из моих запросов - несколько раз в минуту - приурочены. Странно, потому что, пытаясь перезагрузить один и тот же адрес в веб-браузере, даже при перезагрузке очень часто, я всегда получаю содержимое быстро.
Это код, я использую:
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
myRequest.Method = "GET";
myRequest.Timeout = 1500;
myRequest.KeepAlive = false;
myRequest.ContentType = "text/xml";
WebResponse myResponse;
try
{
myResponse = myRequest.GetResponse();
}
catch (Exception e)
{
return e.Message;
}
StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
string result = sr.ReadToEnd();
sr.Close();
myResponse.Close();
И ошибка я получаю:
The operation has timed out
Я пробовал как с набором оставайся в живых к истинным и ложным.
Итак, вопрос в том, есть ли способ уменьшить количество тайм-аутов? Каждый запрос, который я запрашиваю, имеет решающее значение. Я уверен, что это относится к тому, что я часто запрашиваю тот же адрес, но, конечно, есть способ предотвратить его ...?
Большое спасибо!
У вас есть контроль над веб-сервером? Где это? Сколько контента это рендеринг? > 1,5 секунды - это не очень редко. – Jeff
нет контроля, но он очень близок мне. Пинг, который я получаю с сервера, составляет 13 мс, а содержание - около 350 байтов. – BenB
13ms ping не имеет никакого отношения к времени, затрачиваемому на обслуживание страницы веб-сервером. Если вы удалите код тайм-аута, будет ли он еще отключен? Выполняется ли на нескольких потоках опция? – realworldcoder