자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi Indy Compressor 에 버그가 있는것 같습니다.
2017.03.26 19:35
윈도우에서는 정상적으로 잘 돌아가는것이 리눅스에서는 제대로 작동을 하지 않습니다.
기존에는 소스가 포함되어 있어서 수정을 해서라도 사용하겠는데, 지금은 텅 비어 있네요.
(C:\Program Files (x86)\Embarcadero\Studio\19.0\source)
설치과정에도 소스 포함여부도 보이질 않네요.
설치버전은 Delphi 10.2 Tokyo Enterprise 입니다.
그리고, 아래는 작동이 윈도우에서는 되나 리눅스에서는 문제가 발견된 소스입니다.
program test;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, IdHTTP, IdCompressorZLib, IdZLibCompressorBase, IdSSLOpenSSL, IdSocks;
var
IdHTTP: TIdHTTP;
IdZLib: TIdZlibCompressorBase;
IdIOHandler: TIdSSLIOHandlerSocketOpenSSL;
IdSocks: TIdSocksInfo;
begin
IdHTTP := TIdHTTP.Create(nil);
IdIOHandler := TidSSLIOHandlerSocketOpenSSL.Create(IdHTTP);
IdSocks := TIdSocksInfo.Create(IdHTTP);
IdZLib := TIdCompressorZlib.Create(IdHTTP);
IdHTTP.IOHandler := IdIOHandler;
IdHTTP.Compressor := IdZLib;
IdIOHandler.TransparentProxy := IdSocks;
IdHTTP.Request.Accept := 'text/html';
IdHTTP.Request.AcceptEncoding := 'gzip, deflate';
IdHTTP.Request.AcceptLanguage := 'ko-KR';
IdHTTP.Request.Connection := 'Keep-Alive';
IdHTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64)';
WriteLn(IdHTTP.Get('http://www.embarcadero.com/'));
IdSocks.Free;
IdIOHandler.Free;
IdZLib.Free;
IdHTTP.Free;
end.
Delphi Indy Compressor 에 버그가 있는것 같습니다.
2017.03.26 19:35
윈도우에서는 정상적으로 잘 돌아가는것이 리눅스에서는 제대로 작동을 하지 않습니다.
기존에는 소스가 포함되어 있어서 수정을 해서라도 사용하겠는데, 지금은 텅 비어 있네요.
(C:\Program Files (x86)\Embarcadero\Studio\19.0\source)
설치과정에도 소스 포함여부도 보이질 않네요.
설치버전은 Delphi 10.2 Tokyo Enterprise 입니다.
그리고, 아래는 작동이 윈도우에서는 되나 리눅스에서는 문제가 발견된 소스입니다.
program test;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, IdHTTP, IdCompressorZLib, IdZLibCompressorBase, IdSSLOpenSSL, IdSocks;
var
IdHTTP: TIdHTTP;
IdZLib: TIdZlibCompressorBase;
IdIOHandler: TIdSSLIOHandlerSocketOpenSSL;
IdSocks: TIdSocksInfo;
begin
IdHTTP := TIdHTTP.Create(nil);
IdIOHandler := TidSSLIOHandlerSocketOpenSSL.Create(IdHTTP);
IdSocks := TIdSocksInfo.Create(IdHTTP);
IdZLib := TIdCompressorZlib.Create(IdHTTP);
IdHTTP.IOHandler := IdIOHandler;
IdHTTP.Compressor := IdZLib;
IdIOHandler.TransparentProxy := IdSocks;
IdHTTP.Request.Accept := 'text/html';
IdHTTP.Request.AcceptEncoding := 'gzip, deflate';
IdHTTP.Request.AcceptLanguage := 'ko-KR';
IdHTTP.Request.Connection := 'Keep-Alive';
IdHTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64)';
WriteLn(IdHTTP.Get('http://www.embarcadero.com/'));
IdSocks.Free;
IdIOHandler.Free;
IdZLib.Free;
IdHTTP.Free;
end.
SSL 기반의 https 연동하려는 코드로 보입니다.
위 코드를 돌리려면 리눅스 환경에서 SSL 설정이 필요합니다.
Indy SSL 기술문서에서 리눅스 환경에서 설정하는 내용을 참고해야 하지만 아직 해당 내용이 없습니다.
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Securing_Indy_Network_Connections
해당 내용 업데이트를 기다리시거나 다른 방법으로 시도해보시기 바랍니다.
1) 리눅스 SSL 설정하는 내용을 별도록 찾아보시고 해결해보시기 바랍니다.
2) NetHTTP, REST Client 등의 네이티브 SSL을 이용하는 다른 HTTP 클라이언트 프레임워크를 이용해 이용해 보시기 바랍니다.
Net http client : http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_an_HTTP_Client
REST Client : http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Rest_client