Delphi XE2,Intraweb 2.1.23和cookies

时间:2012-05-09 06:27:07

标签: delphi delphi-xe2 intraweb

我做的一切与cookies示例完全相同(此处显示为http://www.atozed.com/intraweb/docs/Develop/Cookies.aspx),但它没有编译,它说“[DCC错误] Login.pas(38):E2035没有足够的实际参数”和将“courser”放在“WebApplication.Response.Cookies.Add”

之后 我错过了什么? 我需要添加一个单位吗?

我使用Delphi XE2和Intraweb 2.1.23 哦,我是intraweb的新手......

请帮忙 谢谢

3 个答案:

答案 0 :(得分:3)

确保 httpapp 在您的uses子句中并尝试以下内容:

procedure TIWServerController.SetCookie;
var
  mCookie: TCookie;
begin
  mCookie := WebApplication.Response.Cookies.Add;
  with mCookie do begin
    Name:='mycookie';
    Value:='mycookievalue';
    Expires := Date + 30;
  end;
end;

答案 1 :(得分:2)

这是一个工作代码块,它将在Intraweb 12.2.8 XE2

中创建一个Cookie

确保在uses子句中添加 IW.HTTP.Cookie

当然你必须修改TiwfrmMain以匹配你的iwform并通过以下方式声明程序:procedure MakeCookie;在你的

procedure TiwfrmMain.MakeCookie;
    var cookieMain: THttpCookie;

begin

 try
  cookieMain:=  THttpCookie.Create('email',editLogin.Text,'',Date + 999);
  WebApplication.Response.Cookies.Add(cookieMain);
  cookieMain.free;  
 except

 end;

end;

然后您也可以通过以下方式获取:

procedure TiwfrmMain.SetCookie;
begin
  try


    if WebApplication.Request.CookieFields.IndexOfName('email')> -1 then
    editLogin.Text := WebApplication.Request.CookieFields.Values['email'];


  except

  end;

end;

njoy:)

答案 2 :(得分:-2)

我的代码:

procedure SetCookie(AIWApplication: TIWApplication; AName, AValue: string; AExpiration: TDate);
var
   LCookie: TCookie;
begin
   AIWApplication.Response.Cookies.Add(LCookie);
 with LCookie do
 begin
   Name := AName;
   Value := AValue;
   Expires := AExpiration;
 end;
end;