gpt4 book ai didi

Delphi HTTP POST 方法 - Cookie 问题

转载 作者:行者123 更新时间:2023-12-03 15:48:57 27 4
gpt4 key购买 nike

我正在尝试登录网站,但该网站总是以

进行响应

“您似乎不接受 cookie。需要 Cookie 才能登录。”

为什么我的程序不允许 cookie?

function HF_Login(): boolean;
var
HTTP : TIDHTTP;
Cookie : TidCookieManager;
Data, Page : TStringList;
begin
HTTP := TIDHTTP.Create(NIL);
Cookie := TidCookieManager.Create(NIL);

HTTP.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1';
HTTP.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
HTTP.Request.AcceptLanguage := 'en-us;q=0.7,en;q=0.3';
HTTP.Request.AcceptCharSet := 'windows-1251,utf-8;q=0.7,*;q=0.7';
HTTP.Request.Pragma := 'no-cache';
HTTP.Request.CacheControl := 'no-cache';
HTTP.Request.RawHeaders.Add('X-Requested-With: XMLHttpRequest');
HTTP.AllowCookies := True;
HTTP.HandleRedirects := True;
HTTP.ProtocolVersion := pv1_1;
HTTP.Request.Connection := 'Keep-Alive';
HTTP.CookieManager := Cookie;

Data := TStringList.Create;
Page := TStringList.Create;

// returnto=%2F&user=[user]&pass=[pass]
Data.Add('returnto=%2F&user=csz0021&pass=Yese0071');

page.Text := HTTP.Post('http://hotfile.com/login.php', Data);
//form1.RichEdit1.Text := HTTP.Post('http://hotfile.com/login.php', Data);

If Pos('Bad username/password combination.', Page.Text) <> 0 Then Result := False
else Result := True;

Page.Free;
Data.Free;
end;

这是一个用于测试网站的免费帐户。

csz0021

Yese0071

<小时/>

谢谢

最佳答案

这一步不能完成,需要分两步完成。首先请求登录页面 (GET),然后发送您的登录凭据 (POST)。确保对这两个操作使用相同的 CookieManager。

<小时/>

编辑以帮助匿名投票者理解为什么这个答案实际上是显而易见的。 OP 收到此错误消息:

"You don't seem to accept cookies. Cookies are required in order to log in."

所以服务器期望看到来自客户端的一些cookie。由于 OP 仅执行一个 POST 请求,因此它的 CookieManager 不包含 cookie,因此它不会发送任何 cookie。尽管如此,服务器仍希望看到一些 cookie。在正常的基于浏览器的 session 中,这些 cookie 来自哪里?好吧,如果不先实际导航到表单(GET 请求),填写登录表单就非常非常困难。

关于Delphi HTTP POST 方法 - Cookie 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5724844/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com