Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.01.2018, 19:13
Pcrepair Pcrepair вне форума
Прохожий
 
Регистрация: 20.01.2015
Сообщения: 35
Версия Delphi: Pascal
Репутация: 10
По умолчанию Indy и SSL. есть еще недоработки?

Добрый день. Есть, в общем, стандартный код загрузки https страницы

Код:
procedure LoadUrl(const aUrl:string; var IsPageLoaded:Boolean; var HtmlCode:string);
var
  ServerCharset:string;
  Buffer: TBytes;
  fIdHttp:TidHTTP;
  fSSL:TIdSSLIOHandlerSocketOpenSSL;
  fStream: TMemoryStream;
begin
  fIdHttp := TIdHTTP.Create(nil);
  fSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  fStream := TMemoryStream.Create;
  try
    try
      fSSL.MaxLineLength:=16384;
      fSSL.Port:=0;
      fSSL.ReadTimeout:=-1;
      fSSL.SendBufferSize:=32768;
      fSSL.SSLOptions.Method:=sslvTLSv1;
      fSSL.SSLOptions.Mode:=sslmUnassigned;
      fSSL.SSLOptions.SSLVersions:=[sslvTLSv1];
      fSSL.SSLOptions.VerifyDepth:=0;
      fSSL.UseNagle:=True;

      fIdHttp.IOHandler:=fSSL;
      fIdHttp.Request.UserAgent:=GetRandomUserAgent;
      fIdHttp.ConnectTimeout:=30000;
      fIdHttp.ReadTimeout:=30000;
      fIdHttp.HandleRedirects:=True;
      fIdHttp.Request.Connection :='keep-alive';

      fIdHttp.Get(aUrl,fStream); 
      ServerCharset:=AnsiLowerCase(fIdHttp.Response.CharSet);
      fStream.Position:=0;
      SetLength(Buffer,fStream.Size);
      fStream.Read(Buffer[0],Length(Buffer));
      HtmlCode:=(CodePageConvert(Buffer, ServerCharset));  
      IsPageLoaded:=True;
    except
      on E:Exception do
      begin
        HtmlCode:=aUrl+#32+#32+#32+E.Message;
        IsPageLoaded:=False;
      end;
    end;
  finally
    FreeAndNil(fIdHttp);
    FreeAndNil(fSSl);
    FreeAndNil(fStream);
  end;
end; 

INDY(10.5.9.0) RAD XE3
libeay32.dll ssleay32.dll (file ver: 0.9.8.18) last mod 07.04.2011

и все работает, кроме сайта https://devyatov.su
там вместо хтмл-кода страницы грузится :
Error connecting with SSL. error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
Вопрос: никто не в курсе что это за ерунда?
Ответить с цитированием
  #2  
Старый 08.01.2018, 09:59
Аватар для @Rafa3L
@Rafa3L @Rafa3L вне форума
Начинающий
 
Регистрация: 09.11.2011
Адрес: Москва
Сообщения: 136
Версия Delphi: XE2
Репутация: 11216
По умолчанию

Индюшку обновите - 10.5.9.0 старовата
__________________
Помогаю платно.
Помогаю иногда бесплатно.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:15.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2017

ВКонтакте   Facebook   Twitter