Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2022, 05:01   #1
hexor_boo
Разъяснятор
Форумчанин
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 126
Вопрос TNetHTTPClient.AddServerCookie

Delphi Sydney
Код:
//netClient - это компонент TNetHTTPClient
//==========================
procedure TfrmMain.btnAuthHexClick(Sender: TObject);
var
 strVarData : TStrings;
begin
 strVarData:=TStringList.Create;
 strVarData.Add('username=admin');
 strVarData.Add('password=god');
 netClient.CookieManager.AddServerCookie(
  'test=hehe', 'http://hex-space.ru/auth.php'
 );
 netPostAuthHex.Post(
  'http://hex-space.ru/auth.php', strVarData, Nil, TEncoding.Default
 );
end;

procedure TfrmMain.netPostAuthHexRequestCompleted(const Sender: TObject;
  const AResponse: IHTTPResponse);
var
 Cookie : TCookie;
begin

  For Cookie In AResponse.Cookies Do
   Begin
    memLog.Lines.Add('Cookie-Name: '+Cookie.Name);
    memLog.Lines.Add('Cookie-Value: '+Cookie.Value);
   End;

end;
По смыслу должен вывестись кукис "test=hehe", а на практике выводится только тот, который я задаю на стороне сервера в коде PHP методом SetCookie. Что я делаю неправильно?
hexor_boo вне форума Ответить с цитированием
Старый 22.08.2022, 06:09   #2
hexor_boo
Разъяснятор
Форумчанин
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 126
По умолчанию

Задача решена! УРА!

На стороне сервера я добавил в код PHP:
Код:
SetCookie("test", $_COOKIE["test"]);
А на стороне клиента я переписал процедуру btnAuthHexClick:
Код:
procedure TfrmMain.btnAuthHexClick(Sender: TObject);
var
 strVarData : TStrings;
 tstCookie  : TCookie;
begin
 strVarData:=TStringList.Create;
 strVarData.Add('username=admin');
 strVarData.Add('password=god');
 tstCookie.Name:='test';
 tstCookie.Value:='hehe';
 netClient.CookieManager.AddServerCookie(
  tstCookie.ToString, 'http://hex-space.ru/auth.php'
 );
 netPostAuthHex.Post(
  'http://hex-space.ru/auth.php', strVarData, Nil, TEncoding.Default
 );
end;
Результат вывода в TMemo:
Код:
Cookie-Name: unp
Cookie-Value: d41d8cd98f00b204e9800998ecf8427e
Cookie-Name: test
Cookie-Value: hehe
hexor_boo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц