Like this:
HTTP := TIdHTTP.Create;
try
HTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)';
Params := TStringList.Create;
try
Params.Add('vb_login_username=someuser');
Params.Add('vb_login_password=');
Params.Add('s=');
Params.Add('securitytoken=guest');
Params.Add('do=login');
Params.Add('vb_login_md5password=asdfghjkjhgfdsdfghjkjhgfdsdfgbn');
Params.Add('vb_login_md5password_utf=asdfghjkjhgfdsdfghjkjhgfdsdfgbn');
TextFromDocument := HTTP.Post('http://somesite.com/login.php?do=login', Params);
finally
Params.Free;
end;
Memo1.Lines.Add('---------------');
Memo1.Lines.Add('Result = ' + HTTP.ResponseCode.ToString + ' ' + HTTP.ResponseText);
Memo1.Lines.Add('---------------');
Memo1.Lines.AddStrings(HTTP.Response.RawHeaders);
Memo1.Lines.Add('---------------');
// Memo1.Lines.Add(TextFromDocument);
Memo1.Lines.Add('---------------');
// either:
with HTTP.CookieManager.CookieCollection do
begin
Memo1.Lines.Add(Cookies[0].CookieText);
Memo1.Lines.Add(Cookies[1].CookieText);
Memo1.Lines.Add(Cookies[2].CookieText);
Memo1.Lines.Add(Cookies[3].CookieText);
end;
// or:
with HTTP.CookieManager.CookieCollection.LockCookieList(caRead) do
try
Memo1.Lines.Add(Cookies[0].CookieText);
Memo1.Lines.Add(Cookies[1].CookieText);
Memo1.Lines.Add(Cookies[2].CookieText);
Memo1.Lines.Add(Cookies[3].CookieText);
finally
HTTP.CookieManager.CookieCollection.UnlockCookieList(caRead);
end;
// there is no direct equivalent to this statement in Indy:
//
//MyC := HTTP.Cookies.Text;
//
// but, you can produce such a string manually, by iteration through the
// CookieManager reading the individual TIdCookie.ClientCookie property
// values, eg:
// either:
MyC := '';
with HTTP.CookieManager.CookieCollection do
begin
for I := 0 to Count-1 do
MyC := Cookies[I].ClientCookie + sLineBreak;
end;
// or:
MyC := '';
with HTTP.CookieManager.CookieCollection.LockCookieList(caRead) do
try
for I := 0 to Count-1 do
MyC := Cookies[I].ClientCookie + sLineBreak;
finally
HTTP.CookieManager.CookieCollection.UnlockCookieList(caRead);
end;
finally
HTTP.Free;