System. Net .WebException: «Базовое соединение было закрыто: при получении произошла непредвиденная ошибка». - PullRequest
0 голосов
/ 12 марта 2020

Может кто-нибудь, пожалуйста, помогите мне с кодом ниже. У меня есть функция, когда я пытаюсь получить данные с веб-сайта, используя URL "https://www1.nseindia.com/live_market/dynaContent/live_analysis/pre_open/all.json".

Но по какой-то причине я всегда получаю Систему. Net .WebException "'Базовое соединение было закрыто: при получении произошла непредвиденная ошибка." "

Те же данные, которые я могу получить, используя URL-адрес" https://www.nseindia.com/api/market-data-pre-open?key=ALL ", но и здесь Я получаю то же исключение WebException при использовании C#. net кода.

Ниже приведен мой код:

public static string GetNSEData()
        {
            //*********get the json file using httpRequest ***********
            HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("https://www1.nseindia.com/live_market/dynaContent/live_analysis/pre_open/all.json");
            httpWebRequest.Method = WebRequestMethods.Http.Get;
            httpWebRequest.Accept = "application/json; charset=utf-8";
            httpWebRequest.UserAgent = @"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36";
            //ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            //ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

            string file;
            var response = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var sr = new StreamReader(response.GetResponseStream()))
            {
                file = sr.ReadToEnd();
            }
            return file;
        }

Я пробовал разные варианты HTTPWebRequest наряду с другими параметрами, но нет успех. В каждом случае я получаю одно и то же исключение или «Удаленный сервер возвратил ошибку: (403) Запрещено».

Ниже приведены варианты, которые я пробовал:

Система. Net .WebException: базовое соединение было закрыто: непредвиденная ошибка при получении

C# System. Net .WebException: базовое соединение было закрыто: непредвиденная ошибка произошло при отправке

любая помощь высоко ценится ...

1 Ответ

0 голосов
/ 12 марта 2020

Вам просто нужно избавиться от httpWebRequest.UserAgent, и тогда все, кажется, работает нормально, поскольку запрос Http не требует этого.

public static string GetNSEData()
    {

        HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("https://www1.nseindia.com/live_market/dynaContent/live_analysis/pre_open/all.json");
        httpWebRequest.Method = WebRequestMethods.Http.Get;
        httpWebRequest.Accept = "application/json; charset=utf-8";

        string file;
        var response = (HttpWebResponse)httpWebRequest.GetResponse();
        using (var sr = new StreamReader(response.GetResponseStream()))
        {
            file = sr.ReadToEnd();
        }
        return file;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...