Я использую 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);
}