Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2018, 19:11   #1
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию 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
Вопрос: никто не в курсе что это за ерунда?
Pcrepair вне форума Ответить с цитированием
Старый 28.03.2018, 07:42   #2
asdf_2ц
Новичок
Джуниор
 
Регистрация: 01.02.2018
Сообщений: 1
По умолчанию

удалось решить проблему? если да, то напиши как
asdf_2ц вне форума Ответить с цитированием
Старый 01.04.2018, 07:12   #3
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Зачем такой перекод, там все намного проще. Индейку посвежее и в путь.
XerSon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
INDY + HTTPS + SSL Maxwellion Работа с сетью в Delphi 5 16.01.2014 16:45
FTP и SSL (indy 9) Happiness_Cookie Работа с сетью в Delphi 0 21.08.2013 09:04
SSL соединение в Indy IQDDD Работа с сетью в Delphi 3 04.04.2013 21:39
Indy SSL metra52 Работа с сетью в Delphi 2 10.04.2012 18:44
Компонент с функционалом SSL+INDY. (Разрушительный сбой) Stilet Компоненты Delphi 7 07.01.2011 17:02