W
wzca
Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是 Delphi 7 和 Indy 的 TidHttp 控件
对于有Session的ASP主页进行 Post时
Page1 .... Login 页, 可能设置了Session
Page2 ..... Check.asp 检查 Session 和UserName & Password
UserName & PassWord 没问题
但是出现了 用户过期或已经注消 的字样,
我感觉是Session 没有带过来吧。?
下面是程序,求高手指点
//---------------------------------------------------
用程序提交数据时,有什么办法可以对付 ASP 里的 Session
//----------------------------------------------------
procedure TMainForm.btnRunClick(Sender: TObject);
var
Source: TStrings;
Response: TMemoryStream;
S, Cookie: String;
i: integer;
begin
Response := TMemoryStream.Create;
Source := TStringList.Create;
S := Http.Get(Page1);
Memo1.Text := S;
// 从返回的页面中找出cookie, 并增加到http.Request中
for i := 0 to Http.Response.RawHeaders.Count -1 do
if UpperCase(LeftStr(Http.Response.RawHeaders, 10)) = 'SET-COOKIE' then
begin
Cookie := Trim(Copy(Http.Response.RawHeaders, 12, MaxInt));
Cookie := Copy(Cookie, 1, Pos(';', Cookie) - 1);
Http.Request.RawHeaders.Add('Cookie:'+ Cookie);
end;
// 再去下一页, 先准备数据
Source.Clear;
Source.Add('USERnumber=' + UserName + '&pwd=' + PassWord + '&UserType=0'
+ '&imageField2.x=19&imageField2.y=8');
Memo1.Text := Http.Post(Page2, Source);
Source.Free;
Response.Free;
//----------------------------------------------------
或者用另一种方法。比如内嵌一个 WebBrowers 怎么能让程序
自动去点击,进入到一个特定的主页,这些页的URL应该可以得到的。
对于有Session的ASP主页进行 Post时
Page1 .... Login 页, 可能设置了Session
Page2 ..... Check.asp 检查 Session 和UserName & Password
UserName & PassWord 没问题
但是出现了 用户过期或已经注消 的字样,
我感觉是Session 没有带过来吧。?
下面是程序,求高手指点
//---------------------------------------------------
用程序提交数据时,有什么办法可以对付 ASP 里的 Session
//----------------------------------------------------
procedure TMainForm.btnRunClick(Sender: TObject);
var
Source: TStrings;
Response: TMemoryStream;
S, Cookie: String;
i: integer;
begin
Response := TMemoryStream.Create;
Source := TStringList.Create;
S := Http.Get(Page1);
Memo1.Text := S;
// 从返回的页面中找出cookie, 并增加到http.Request中
for i := 0 to Http.Response.RawHeaders.Count -1 do
if UpperCase(LeftStr(Http.Response.RawHeaders, 10)) = 'SET-COOKIE' then
begin
Cookie := Trim(Copy(Http.Response.RawHeaders, 12, MaxInt));
Cookie := Copy(Cookie, 1, Pos(';', Cookie) - 1);
Http.Request.RawHeaders.Add('Cookie:'+ Cookie);
end;
// 再去下一页, 先准备数据
Source.Clear;
Source.Add('USERnumber=' + UserName + '&pwd=' + PassWord + '&UserType=0'
+ '&imageField2.x=19&imageField2.y=8');
Memo1.Text := Http.Post(Page2, Source);
Source.Free;
Response.Free;
//----------------------------------------------------
或者用另一种方法。比如内嵌一个 WebBrowers 怎么能让程序
自动去点击,进入到一个特定的主页,这些页的URL应该可以得到的。