Сервер остановил рукопожатие (моно) - PullRequest
0 голосов
/ 22 сентября 2018

Я использую Unity и C #.Попытка загрузить файл с защищенного SSL сайта с помощью System.Net.Однако я получаю следующий журнал ошибок

I / Unity (11583): System.Net.WebException: Ошибка при получении потока ответов (запись: сбой аутентификации или дешифрования.): SendFailure ---> System.IO.IOException: проверка подлинности или расшифровка не удалась.---> Mono.Security.Protocol.Tls.TlsException: сервер остановил рукопожатие.I / Unity (11583): в Mono.Security.Protocol.Tls.SslClientStream.SafeReceiveRecord (System.IO.Stream s) [0x00000] в: 0 I / Unity (11583): в Mono.Security.Protocol.Tls.SslClientStream.OnNegotiateHandshakeCallback (IAsyncResult asyncResult) [0x00000] в: 0 I / Unity (11583): в Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (IAsyncResult async0: IyncResult asyncResult asyncResult asyncResult async):- Конец внутренней трассировки стека исключений --- I / Unity (11583): в Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (IAsyncResult asyncResult) [0x00000] в: 0 I / Unity (11583): --- Конецвнутренней трассировки стека исключений --- I / Unity (11583): в System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00000] в: 0

После исследования я обнаружил похожую проблему,но это была просто проверка безопасности SSL, которую я уже переопределяю и просто возвращаю истину.Моя проблема другая, сервер останавливает рукопожатие.Попробовав разные сайты, я обнаружил, что он работает на некоторых.

Он работает для:

Это неработа для:

Мой код:

public void DownloadFile()
{
    cancelled = false;

    client = new WebClient();

    client.DownloadFileAsync(new Uri(downloadUrl), GooglePlayDownloader.GetExpansionFilePath() + "/" + newFileName);


    downloading = true;
    client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
    client.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadFileCompleted);
}
...