.exe 如何取得特定cookie中的特定值,如用户名等。我的exe与网页无关联。
解决方案 »
- zeoslib(zeosDBO) 如何动态指定Access(mdb)数据库
- 菜鸟提问
- 小小空值问题!!在adoquery中怎么使用EDIT做为参数值????
- 通过路径怎样把图片存到SQL中?
- ADOTABLE 可以LOCATE吗? locateoption属性应是? 如何对ADOTABLE定位记录?
- 一个小问题,,什么是bcd码,什么是压缩的BCD码?二者有什么区别???
- socket通信
- 简单的sql语句
- 安装了WIN2000SERVER后发现一个很大的问题……
- Form显示事件过程的问题!!
- 请问在Delphi中可以调用VB写的控件吗? 该如何调呢?
- copy函数的用法是怎么用啊!!哈哈!!是不是很“菜”
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
with Response do
begin
Cookies.Clear;
Cookies.Add;
Cookies[0].Name:='UserName';
Cookies[0].Value:=XXX;
Cookies.Add;
Cookies[1].Name:='Email';
Cookies[1].Value:=XXX;//分配了两个Cookie
end;
end;
读入Cookie:
var UName,UEmail:String;
begin
with Request.QueryFields do
begin
UName:=Values['UserName'];
UEmail:=Values['Email'];//读入
end;
end;
begin
Name:='UserName';
Value:=UserName;
end;
with Response.Cookies.Add do
begin
Name:='UserPwd';
Value:=UserPwd;
end;
用户名:request.cookiefields.values[UserName] ;
在Delphi中管理Cookie是一件非常容易的事。THTTPRequest和THTTPResponse都封装了用来处理Cookie的特性和方法,允许您控制怎样读写Cookie。
要设置Cookie的内容,您可以调用TWebResponse的SetCookieField的方法。这个方法需要传递一个TStrings对象作为Cookie的内容以及这个Cookie的限制条件。SetCookieField()方法是这样声明的: procedure SetCookieField(Values:TStrings;const ADomain,APath:string;AExpires:TDateTime;ASecure:Boolean);Values参数是一个TStrings对象(也可以使用TStringList对象),用于指定Cookie的实际内容。Values中可以包含多个Cookie。ADomain 参数用于限制服务器的域,Cookie只对特定域的服务器是有效的。如果这个参数为空,Cookie将被传递给任何一个服务器。一般情况下,应当把这个参数设为Web服务器的域名。APath参数用于指定一组路径,Cookie只在特定的路径下是合法的。AExpires参数用于指定Cookie在多长时间内是合法的,由于时差的原因,这个时间应当基于GMT时区。如果您想使Cookie的有效时间是10天,就应当把这个参数设为Now+10。如果要使一个Cookie无效,这个参数可以设为过去的一个时间。注意,一个Cookie无效后,就不会被传递给服务器,但并不从客户机中删除。ASecure参数是一个boolean值,如果这个参数设为True,表示Cookie只能通过HTTP或SSL传递。一般情况,这个参数设为False。 在Web服务器端,您可以通过TWebRequest的CookieFields特性访问由客户传递来的Cookie。这个特性是一个TStrings对象,每个Cookie的格式是param=value。调用TWebRequest的ExtractCookieFields()方法可以把多个Cookie分解为一个个字符串。
Cookie可以保存任何字符串所能表达的信息。Cookie的长度最多可达4KB,客户的机器最多可以保存300个Cookie.每个服务器或域的Cookie不超过20个。下面举一个例子说明Cookie的应用:var
CookList : TStringList;
iBZ,fcbz:integer; begin
CookList := TStringList.Create;
try
CookList.Add('NSRID='+ sNSRID);
CookList.Add('NSRMC=' + sNSRMC);
CookList.Add('WJBM=' + sWJBM);
CookList.Add('YHZH=' + sYHZH);
iBZ:=0;
fcbz:=0;
CookList.Add('BZ=' + IntToStr(iBZ));
CookList.Add('FCBZ=' + IntToStr(fcbz));
Response.SetCookieField(cookList,'','',Now+10,False);
finally
cookList.Free;
End;
End;//创建Cookie iBZ:=StrToInt(Request.CookieFields.Values['BZ']);//使用Cookie
我是用delphi做的ActivexForm嵌入到网页中,我的ActivexForm想读取cookie的值不知道可不可以?如何实现?
bReturn:Boolean;
szURL:array[0..255] of Char;
PChar:lpszData;
DWORD:dwSize;
begin
dwSize:=0;
//创建会话Cookie
bReturn:=InternetSetCookie('http://www.adventure_works.com', NULL,'TestData=Test');
//创建永久性Cookie
bReturn:=InternetSetCookie('http://www.adventure_works.com', NULL,'TestData=Test;expires=Sat,01-Jan-2000 00:00:00 GMT');
//读取Cookie
if InternetGetCookie(szURL, NULL, lpszData, &dwSize)=0 then
begin
//读取Cookie成功
//释放lpszData
dispose(lpszData);
end
else
begin
//读取Cookie失败
end;end;