SSL통신은 https://www.facebook.com/ 과 같은 곳으로 테스트 해볼 수 있습니다.
작성하신 코드에 문제는 없어 보이고요, 해당 URL도 잘 읽혀집니다.
혹시 libeay32.dll, ssleay32.dll 2개 파일이 누락되지는 않았나요 ?
여기에서 http://www.indyproject.org/sockets/ssl.en.aspx 다운로드 할 수 있습니다.
제가 테스트한 코드는 아래와 같습니다.
const
RSP_200_OK = 200;
var
LHttp: TIdHttp;
LSSL: TIdSSLIOHandlerSocketOpenSSL;
LRcv: TStringStream;
begin
LHttp := TIdHttp.Create(nil);
try
LSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
try
LRcv := TStringStream.Create(EmptyStr, TEncoding.UTF8);
try
LSSL.SSLOptions.Mode := sslmClient;
LHttp.IOHandler := LSSL;
LHttp.Get('https://esta.cbp.dhs.gov/esta/', LRcv);
if LHttp.ResponseCode = RSP_200_OK then
Memo1.Lines.Text := LRcv.DataString;
finally
FreeAndNil(LRcv);
end;
finally
FreeAndNil(LSSL);
end;
finally
FreeAndNil(LHttp);
end;
end;
델파이싫어 님이 쓰신 글 :
: idhttp와 idSSLIOHANDLERSocketOpenSSL을
: 이용하여 https 페이지를 가져오려고 하는데
: 어떻게 해야되나요??
:
: 아래는 작성한 코드인데
: "Socket Error # 10060 Connection timed out."이 발생합니다.
:
: procedure TForm1.btnRequestClick(Sender: TObject);
: var
: s: string;
: lHTTP: TIdHTTP;
: lIOHandler: TIdSSLIOHandlerSocketOpenSSL;
:
: begin
: lHTTP := TIdHTTP.Create(nil);
: lIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
: try
: lHTTP.IOHandler := lIOHandler;
: lHTTP.HandleRedirects := True;
: s := lHTTP.Get(' https://esta.cbp.dhs.gov/esta/');
: Memo.Text := s;
: finally
: lHTTP.Free;
: lIOHandler.Free;
: end;
: end;
:
|