Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.223.196.211] |
|
Сообщ.
#1
,
|
|
|
Код функции прекрасно работает если ему подсунуть http-ссылку
DownloadFile('http://host.test/1.zip', 'C:\1.zip'); Однако если использовать https-ссылку: DownloadFile('https://host.test/1.zip', 'C:\1.zip'); то в третьей строчке функции UrlHandle получает значение nil. В описании к InternetOpenUrl говорится что она работает с https. GetLastError даёт ошибку 12157 (The application experienced an internal error loading the SSL libraries.). Какого-то параметра не хватает или чего более? В браузере, разумеется работают обе ссылки на файл. function tFormUpdate.DownloadFile(const Url: string; const FileName : string): Boolean; var NetHandle: HINTERNET; UrlHandle: HINTERNET; Buffer: array[0..1024] of char; BytesRead: cardinal; f : File; begin NetHandle := InternetOpen(PChar(ExtractFileName(Application.ExeName)), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); if Assigned(NetHandle) then begin UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD , 0); if Assigned(UrlHandle) then begin AssignFile(f, FileName); Rewrite(F, 1); FillChar(Buffer, SizeOf(Buffer), 0); repeat FillChar(Buffer, SizeOf(Buffer), 0); InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead); pbUpload.Position := pbUpload.Position + Integer(BytesRead); Application.ProcessMessages; BlockWrite(f, Buffer, BytesRead); until BytesRead = 0; InternetCloseHandle(UrlHandle); CloseFile(F); REsult := true; end else begin Result := false; end; InternetCloseHandle(NetHandle); end else result := false; end; |
Сообщ.
#2
,
|
|
|
попробуй libeay32.dll положить в папку с файлом
|
Сообщ.
#3
,
|
|
|
Цитата ^D^ima @ попробуй libeay32.dll положить в папку с файлом Спасибо, но лежит такой файл. Через TIdHTTP с сайтом нормально обмен идет информацией, видимо придётся на него переделывать и загрузку файлов. Оказалось что сервер не настроен на работу с Windows XP + IE8. https://www.ssllabs.com/ssltest/analyze.html показал только для этой пары: Server sent fatal alert: handshake_failure, с остальными браузерами и системами всё в порядке. Открыл IE8 (наверное впервые за 15 лет) и в нём действительно сайт и файлы с него не грузятся. |
Сообщ.
#4
,
|
|
|
Дык. После хартблидов все начали версии ssl наращивать и старые убирать. Учитывая повсеместный переход на https, скоро без сторонних программ с XP вообще никуда не выйдешь
|