unit
_SendRequest;
interface
uses
IdURI,
Classes,
IdCookieManager, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
System
.
SysUtils,
WinInet;
function
SendPostRequest(URL:
String
; Params: TStringList; cookie_dir:
String
; domain:
String
):
String
;
function
StreamRequest(URL:
String
; Stream: TStream):
Boolean
;
function
SendGetRequest(URL:
String
; cookie_dir:
String
):
String
;
procedure
IdCookieManagerSaveFile(IdCookieManager: TIdCookieManager; dir:
string
);
function
IdCookieManagerLoadFile(IdCookieManager: TIdCookieManager; domain, dir:
string
): TIdCookieManager;
implementation
uses
Main;
function
SendPostRequest(URL:
String
; Params: TStringList; cookie_dir:
String
; domain:
String
):
String
;
var
IdHTTP: TIdHTTP;
IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL;
IdCookieManager: TIdCookieManager;
urlRequest:
String
;
begin
urlRequest := URL;
try
IdHTTP := TIdHTTP
.
Create;
except
on
E: Exception
do
begin
Result :=
'ERRORMESSAGE: '
+ E
.
Message
end
;
end
;
IdHTTP
.
ConnectTimeout :=
5000
;
try
IdHTTP
.
Request
.
UserAgent :=
'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
;
IdHTTP
.
Request
.
AcceptLanguage :=
'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3'
;
IdSSLIOHandlerSocketOpenSSL := TIdSSLIOHandlerSocketOpenSSL
.
Create;
IdCookieManager := TIdCookieManager
.
Create;
IdHTTP
.
CookieManager := IdCookieManager;
IdHTTP
.
IOHandler := IdSSLIOHandlerSocketOpenSSL;
try
Result := Trim(IdHTTP
.
Post(urlRequest, Params));
except
on
E: Exception
do
begin
Result :=
'ERRORMESSAGE: '
+ E
.
Message;
IdHTTP
.
Free;
end
;
end
;
finally
IdHTTP
.
Free;
IdSSLIOHandlerSocketOpenSSL
.
Free;
IdCookieManager
.
Free;
end
;
end
;
function
StreamRequest(URL:
String
; Stream: TStream):
Boolean
;
var
IdHTTP: TIdHTTP;
IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL;
IdCookieManager: TIdCookieManager;
urlRequest:
String
;
begin
urlRequest := URL;
try
IdHTTP := TIdHTTP
.
Create;
except
on
E: Exception
do
begin
Result :=
False
;
end
;
end
;
IdHTTP
.
ConnectTimeout :=
5000
;
try
IdHTTP
.
Request
.
UserAgent :=
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
;
IdHTTP
.
Request
.
AcceptLanguage :=
'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7'
;
IdSSLIOHandlerSocketOpenSSL := TIdSSLIOHandlerSocketOpenSSL
.
Create;
IdCookieManager := TIdCookieManager
.
Create;
IdHTTP
.
CookieManager := IdCookieManager;
IdHTTP
.
IOHandler := IdSSLIOHandlerSocketOpenSSL;
try
IdHTTP
.
Get(urlRequest, Stream);
Result :=
True
;
except
on
E: Exception
do
begin
Result :=
False
;
IdHTTP
.
Free;
end
;
end
;
finally
IdHTTP
.
Free;
IdSSLIOHandlerSocketOpenSSL
.
Free;
IdCookieManager
.
Free;
end
;
end
;
function
SendGetRequest(URL:
String
; cookie_dir:
String
):
String
;
var
IdHTTP: TIdHTTP;
IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL;
IdCookieManager: TIdCookieManager;
urlRequest:
String
;
begin
urlRequest := URL;
try
IdHTTP := TIdHTTP
.
Create;
except
on
E: Exception
do
begin
Result :=
'ERRORMESSAGE: Cant init IdHTTP'
;
end
;
end
;
IdHTTP
.
ConnectTimeout :=
5000
;
try
IdHTTP
.
Request
.
UserAgent :=
'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
;
IdHTTP
.
Request
.
AcceptLanguage :=
'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3'
;
IdSSLIOHandlerSocketOpenSSL := TIdSSLIOHandlerSocketOpenSSL
.
Create(IdHTTP);
IdSSLIOHandlerSocketOpenSSL
.
SSLOptions
.
SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2];
IdCookieManager := TIdCookieManager
.
Create;
IdHTTP
.
CookieManager := IdCookieManager;
IdHTTP
.
IOHandler := IdSSLIOHandlerSocketOpenSSL;
try
Result := IdHTTP
.
Get(urlRequest);
IdCookieManagerSaveFile(IdCookieManager, cookie_dir);
except
on
E: Exception
do
begin
Result :=
'ERRORMESSAGE: '
+ E
.
Message;
IdHTTP
.
Free;
end
;
end
;
finally
IdHTTP
.
Free;
IdSSLIOHandlerSocketOpenSSL
.
Free;
IdCookieManager
.
Free;
end
;
end
;
end
.