uses
HTTPSend, SSL_OpenSSL;
function
KOI8R2ANSI(S:
string
):
string
;
var
Ansi_CODE, KOI8_CODE:
string
;
i:
integer
;
begin
KOI8_CODE :=
'бвчздецъйклмнопртуфхжигюыэящшьасБВЧЗДЕЦЪЙКЛМНОПРТУФХЖИГЮЫЭЯЩШЬАС—Ј'
;
ANSI_CODE :=
'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ё'
;
Result := S;
for
i :=
1
to
Length(Result)
do
if
Pos(Result[i], KOI8_CODE) >
0
then
Result[i] := ANSI_CODE[Pos(Result[i], KOI8_CODE)];
end
;
function
GetLocation(
const
headers:TStringList):
string
;
var
i:
integer
;
begin
for
I :=
0
to
headers
.
Count -
1
do
if
pos(
'Location: '
,headers[i])>
0
then
begin
Result:=copy(headers[i],
10
,length(headers[i])-
9
);
break;
end
;
end
;
procedure
TForm1
.
Button1Click(Sender: TObject);
var
HTTP: THTTPSend;
URLData:
String
;
begin
HTTP := THTTPSend
.
Create;
try
HTTP
.
Timeout :=
60000
;
URLData :=
'Domain=mail.ru'
;
HTTP
.
Document
.
Write
(
Pointer
(URLData)^, Length(URLData));
URLData :=
'Password=***'
;
HTTP
.
Document
.
Write
(
Pointer
(URLData)^, Length(URLData));
URLData :=
'Login=***'
;
HTTP
.
Document
.
Write
(
Pointer
(URLData)^, Length(URLData));
HTTP
.
MimeType :=
'application/x-www-form-urlencoded'
;
if
http
.
ResultCode=
302
then
begin
begin
httpsend
.
Document
.
Clear;
httpsend
.
Headers
.
Clear;
form1
.
Memo1
.
Lines
.
LoadFromStream(
http
.
Document
);
form1
.
memo1
.
Lines
.
SaveToFile(extractfilepath(paramstr(
0
))+
'test.html'
);
end
else
form1
.
Memo1
.
Lines
.
Add(
'Авторизация не удалась'
);
form1
.
Memo2
.
Lines
.
LoadFromStream(
http
.
Document
);
form1
.
memo2
.
Lines
.
SaveToFile(extractfilepath(paramstr(
0
))+
'test2.html'
);
finally
HTTP
.
Free;
end
;
end
;