Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Проблема с IdHTTP в связке с SSL


Автор: Delphins 16.4.2006, 16:59
Код

var
  Request : String;
  HTML: String;
  F: TextFile;
  S: String;
  IdHTTP : TIdHTTP;
  IdSSL: TIdSSLIOHandlerSocketOpenSSL;
begin
  IdHTTP := TIdHTTP.Create;
  IdSSL := TIdSSLIOHandlerSocketOpenSSL.Create;

  Request := '?p_logname=' + E_Login.Text + '&' +  'p_pwd='+ E_Password.Text + '&' + 'p_lang=RUS';
  try
     IdHTTP.Request.ContentType:='text/html';
     IdHTTP.Request.Method := hmPost;
     IdHTTP.IOHandler := IdSSL;
     try
      IdSSL.StartSSL;
     except
      ShowMessage( 'Couldn''t load ssl library! ');
     end;
     HTML := IdHTTP.Get( URL+POST+Request );
  except on E:Exception do
     HTML:='$E '+E.Message;
  end;


Говорит что не может загрузить бибилотеку... Файлы ssleay32.dll и libeay32.dll лежат вместе с программой и в папке System32.
Немогу понять в чем дело... Версия - 0.9.8.2

Что делать?  smile  

Автор: Poseidon 16.4.2006, 19:32
А зачем вот это:

Цитата(Delphins @  16.4.2006,  15:59 Найти цитируемый пост)
try
      IdSSL.StartSSL;
     except
      ShowMessage( 'Couldn''t load ssl library! ');
     end;


Я когда работал с https, то просто к TIdHTTP подключал TIdSSLIOHandlerSocket:
Код

IdHTTP.IOHandler:= IdSSLIOHandlerSocket;

и работал как через http.
 

Автор: Delphins 16.4.2006, 21:00
Цитата

А зачем вот это:

Цитата(Delphins @  16.4.2006,  15:59 )    
try      IdSSL.StartSSL;     except      ShowMessage( 'Couldn''t load ssl library! ');     end;


Пробовал, думал может не работает тока из под дельфи. Иначе просто ничего не происходило. А мне нужно было знать точно ли ошибка в SSL;

Добавлено @ 21:03 
[Error] frm_main.pas(108): E2003 Undeclared identifier: 'TIdSSLIOHandlerSocket'
Indy 10.  smile 
 

Автор: Poseidon 16.4.2006, 21:08
uses IdBaseComponent, IdComponent, IdIOHandler, IdIOHandlerSocket, IdSSLOpenSSL 

Автор: Delphins 16.4.2006, 22:14
Все что ты написал уже подключено. smile  

Автор: Poseidon 16.4.2006, 23:41
давай весь код. Вместе с uses и всем нужным  

Автор: Snowy 17.4.2006, 10:58
В uses добавь: IdSSL, IdSSLOpenSSL.

Цитата(Delphins @  16.4.2006,  21:00 Найти цитируемый пост)
Undeclared identifier: 'TIdSSLIOHandlerSocket'
Правильно.
Потому что в 10-ке его зовут TIdSSLIOHandlerSocketOpenSSL. 

Автор: Delphins 17.4.2006, 12:32
Код

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ComCtrls, ImgList, Tabs, XPMan, StdCtrls, Buttons, Registry,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
  IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL;


Код

procedure TF_Main.Btn_CheckClick(Sender: TObject);
const
  URL = 'https://hp.kubtelecom.ru:8888/pls/fsun/';
  POST =  'htm_db.callhpage';
var
  Request : String;
  HTML: String;
  F: TextFile;
  S: String;
  IdHTTP : TIdHTTP;
  IdSSL: TIdSSLIOHandlerSocketOpenSSL;
begin
  IdHTTP := TIdHTTP.Create;
  IdSSL := TIdSSLIOHandlerSocketOpenSSL.Create;

  Request := '?p_logname=' + E_Login.Text + '&' +  'p_pwd='+ E_Password.Text + '&' + 'p_lang=RUS';
  try
     IdHTTP.Request.ContentType:='text/html';
     IdHTTP.Request.Method := hmPost;
     IdHTTP.IOHandler := IdSSL;
     HTML := IdHTTP.Get( URL+POST+Request ); // Ошибка Could not load SSL library.
  except on E:Exception do
     HTML:='$E '+E.Message;
  end;
 
  // Сдесь я вырезал нахождение нужно инфы в странице.   

  IdHTTP.Free;
  IdSSL.Free;
end;
  

Автор: MetalFan 6.7.2007, 13:50
Прием! проблема решилась? столкнулся с тем же... создам наверное новую тему

Автор: Delphins 8.7.2007, 20:30
Да. Скачай в интернете и кинь в папку программы 2 lib'ы 
libeay32.dll
ssleay32.dll

Автор: MetalFan 8.7.2007, 20:48
Цитата(Delphins @  8.7.2007,  21:30 Найти цитируемый пост)
Скачай в интернете

дело в том, что не все бибилиотеки одинаково полезны)))
разбирался с проблемой http://forum.vingrad.ru/forum/topic-162332/kw-indy-ssl-openssl-dll.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)