Delphi Send POST с TIdHttp и специальными символами - PullRequest
0 голосов
/ 17 октября 2018

Я делаю сообщение для аутентификации, используя TIdHttp, как правило, но когда имя пользователя имеет специальный символ, оно не работает, анализируя POST браузером, я вижу преобразование, например, имя пользователя "aforça" в браузере остается "afor% E7a ", даже отправка мне того, что отправляет браузер, то есть" afor% E7a "также не работает.

Я пробовал следующее:

var
 Params2: TStringList;
begin
    Params2 := TStringList.Create;
    Params2.Add('username=' + UTF8String('aforça'));
    Params2.Add('password=' + UTF8String('123456'));
    xHtmlRetorno := IdHttp.Post('urlsite.com', Params2);
end;

не работает. *В поисках 1006 *

я обнаружил следующее:

var
 Params3 : TIdMultipartFormDataStream;
begin
  Params3 := TIdMultipartFormDataStream.Create;
  Params3.AddFormField('username', UTF8Encode('aforça'), 'utf-8').ContentTransfer := '8bit';
  Params3.AddFormField('password', UTF8Encode('123456'), 'utf-8').ContentTransfer := '8bit';
  xHtmlRetorno := IdHttp.Post('urlsite.com', Params3);
end;

, который также не работал ...

Даже если я отправляю сообщения, отправленные браузером, это не такработать.

var
 Params2: TStringList;
begin
    Params2 := TStringList.Create;
    Params2.Add('username=' + UTF8String('afor%E7a'));
    Params2.Add('password=' + UTF8String('123456'));
    xHtmlRetorno := IdHttp.Post('urlsite.com', Params2);
end;

как я могу это сделать, поскольку я могу аутентифицироваться только с тем пользователем, который не может использовать специальные символы.

Спасибо!

...