第一次发帖。先谢谢各位。
我查资料的时候 听说 用indy10,idhttp就不管管cookie了。会想webbrowse一样自动保存。但是我测试的时候
发现不是这样的啊。我用idhttp post 能登录成功。但是 我接着用 idhttp get这个网站首页的时候。返回的
源码,并不是登录状态的东西。
我的代码如下:
IdHTTP1.Request.Accept := '*/*';
IdHTTP1.Request.Host := 'www.meilishuo.com';
IdHTTP1.Request.Referer := 'http://www.meilishuo.com/logon';
IdHTTP1.Request.Connection := 'Keep-Alive';
IdHTTP1.HTTPOptions := IdHTTP1.HTTPOptions + [hoKeepOrigProtocol];
IdHTTP1.ProtocolVersion := pv1_1;
IdHTTP1.AllowCookies := True;
Params1.Append('emailaddress=bucuodfsafsa');
Params1.Append('password=870527');
Params1.Append('savestate=true');
Params1.Append('type=undefined');
Params1.Append('follow=0');
Params1.Append('wbid=0');
Params1.Append('redirect=http%3A%2F%2Fwww.meilishuo.com%2Fwelcome'); url := 'http://www.meilishuo.com/users/ajax_logon?frm=undefined';
IdHTTP1.HandleRedirects := true; s := idhttp1.Post(url, Params1);
到这里 post结果 能成功登录。下面我接着写的 : cookie := '';
for i := 0 to IdCookieManager1.CookieCollection.Count - 1 do begin
cookie := cookie + IdCookieManager1.CookieCollection.Items[i].CookieText;
end;
IdHTTP1.Request.RawHeaders.Add('cookie: ' + cookie);
//为idhttp cookie 赋值(我不知道是否需要这个步骤indy10);
s := IdHTTP1.Get('http://www.meilishuo.com/welcome');想通过get取源码。 发现返回的s 并不是登录后的东西。不明白为什么。呢网上也听说 要和 cookiemaneger一起用。我也测试过。始终。不行。谢谢各位大侠。
帮个忙。
我查资料的时候 听说 用indy10,idhttp就不管管cookie了。会想webbrowse一样自动保存。但是我测试的时候
发现不是这样的啊。我用idhttp post 能登录成功。但是 我接着用 idhttp get这个网站首页的时候。返回的
源码,并不是登录状态的东西。
我的代码如下:
IdHTTP1.Request.Accept := '*/*';
IdHTTP1.Request.Host := 'www.meilishuo.com';
IdHTTP1.Request.Referer := 'http://www.meilishuo.com/logon';
IdHTTP1.Request.Connection := 'Keep-Alive';
IdHTTP1.HTTPOptions := IdHTTP1.HTTPOptions + [hoKeepOrigProtocol];
IdHTTP1.ProtocolVersion := pv1_1;
IdHTTP1.AllowCookies := True;
Params1.Append('emailaddress=bucuodfsafsa');
Params1.Append('password=870527');
Params1.Append('savestate=true');
Params1.Append('type=undefined');
Params1.Append('follow=0');
Params1.Append('wbid=0');
Params1.Append('redirect=http%3A%2F%2Fwww.meilishuo.com%2Fwelcome'); url := 'http://www.meilishuo.com/users/ajax_logon?frm=undefined';
IdHTTP1.HandleRedirects := true; s := idhttp1.Post(url, Params1);
到这里 post结果 能成功登录。下面我接着写的 : cookie := '';
for i := 0 to IdCookieManager1.CookieCollection.Count - 1 do begin
cookie := cookie + IdCookieManager1.CookieCollection.Items[i].CookieText;
end;
IdHTTP1.Request.RawHeaders.Add('cookie: ' + cookie);
//为idhttp cookie 赋值(我不知道是否需要这个步骤indy10);
s := IdHTTP1.Get('http://www.meilishuo.com/welcome');想通过get取源码。 发现返回的s 并不是登录后的东西。不明白为什么。呢网上也听说 要和 cookiemaneger一起用。我也测试过。始终。不行。谢谢各位大侠。
帮个忙。
idhtp1.Request.CustomHeaders.Add('Cookie:' + mmo4.Text);
for i := 0 to IdCookieManager1.CookieCollection.Count - 1 do begin
cookie := cookie + IdCookieManager1.CookieCollection.Items[i].CookieText;
end;
IdHTTP1.Request.RawHeaders.Add('cookie: ' + cookie);
这个 和您的那句话 意思是一样的吧?
mStr := IdHttp1.Response.CustomHeaders.Values[ 'Set-Cookie'];
if Pos( ';',mStr)> 0 then
Session_ID := LeftBStr(mStr,Pos( ';',mStr)-1)
else
Session_ID := mStr; IdHttp1.Request.CustomHeaders.Add( 'Cookie:' + Session_ID);
IdHttp1.Get(mURL2);
idhttp post 登录www.meilishuo.com。
然后 用idhttp get 首页源码 的时候 能取到 自己的信息。current_user = {
'id': 6948928,
'nickname': 'yinhuai520',
'avatar': 'http://imgtest.meiliworks.com/ap/c/a9/ab/118ec1970d941e7c3af61c504403_90_90.jpg'
};
即源码的 currentuser 有值。没在登录状态下 都为 0 。谢谢各位了。 100 RMB 奉上。
万分感谢哈 100元。小弟没什么钱。意思一下