C # webclient - получил неожиданный EOF или 0 байт из транспортного потока - PullRequest
0 голосов
/ 27 декабря 2018

Иногда я сталкиваюсь с этой ошибкой, когда пытаюсь подключиться к серверу с помощью WebClient.

Однако я прошел через предыдущие вопросы и ответы, такие как Получение исключения EOF через вызов https об этом.Я уже попробовал их решения, но это мне не помогло.

Как и в предыдущих вопросах, я также обновил .net framework с 4.5 до 4.6.1, но все еще сталкивался с тем же.

Мой код похож на ниже

    private static string GetWebContent(string url)
    {
        string response = null;
        try
        {
            ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;                
            using (var request = new GZipWebClient())
            {
                response = request.DownloadString(url);
                request.Dispose();
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        return response;
    }

1 Ответ

0 голосов
/ 27 декабря 2018

Каким-то образом ваш код пытается использовать TLS, но сервер, на который вы отправляете запрос, не поддерживает его.

Вы можете попробовать установить SSL3 явно

Изменить:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;

Кому:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
...