C# Тайм-аут WebRequest при втором вызове - PullRequest
2 голосов
/ 23 января 2020

При первом вызове этой функции все работает отлично. Когда я вызываю его во второй раз, я получаю исключение. Хост не отвечает. Я пытался все часами, но у меня не получается. Это веб-сайт или что-то не так с моим кодом?

string url = "https://www.nseindia.com/live_market/dynaContent/live_watch/option_chain/optionKeys.jsp";
string website = "";

HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(url);
httpRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
httpRequest.Timeout = 5000;

using (var response = (HttpWebResponse)httpRequest.GetResponse())
{
    using (StreamReader Reader = new StreamReader(response.GetResponseStream()))
    {
        website = Reader.ReadToEnd();
    }
}

httpRequest.Abort();

1 Ответ

1 голос
/ 23 января 2020

Пожалуйста, на каждый вопрос, который вы собираетесь здесь задать, постарайтесь указать как можно больше деталей. Нам станет легче помогать вам в решении ваших проблем. Особенно те исключения, которые у вас возникают при разработке.

О вашем коде, реализация которого не рекомендуется для Microsoft. Глядя на документы https://docs.microsoft.com/en-us/dotnet/api/system.net.httpwebrequest?view=netframework-4.8, есть часть, которая гласит: Мы не рекомендуем использовать HttpWebRequest для новых разработок. Вместо этого используйте класс System. Net .Http.HttpClient.

Попробуйте изменить реализацию для использования класса HttpClient и посмотрите, не произойдет ли ошибка снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...