Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 与Indy一起使用cookie_Delphi_Delphi 7_Session Cookies_Indy - Fatal编程技术网

Delphi 与Indy一起使用cookie

Delphi 与Indy一起使用cookie,delphi,delphi-7,session-cookies,indy,Delphi,Delphi 7,Session Cookies,Indy,我正在尝试使用Indy组件从站点获取数据。(这在Delphi7中,但很乐意使用任何有效的工具。) 如果进入普通浏览器并输入以下路径: 它会让你在重定向到实际站点之前勾选一个免责声明。这创建了一个cookie,如果我在Firefox中看到它,它是这样的: 名称:ASP.NET_SessionId 内容:vm4l0w033cdng5mevz5bkzzq 路径:/ 发送请求:任何类型的连接 过期:在会话结束时 我无法使用编程完成免责声明部分,但我认为如果我手动签署免责声明,那么我可以将cookie的详

我正在尝试使用Indy组件从站点获取数据。(这在Delphi7中,但很乐意使用任何有效的工具。)

如果进入普通浏览器并输入以下路径: 它会让你在重定向到实际站点之前勾选一个免责声明。这创建了一个cookie,如果我在Firefox中看到它,它是这样的: 名称:ASP.NET_SessionId 内容:vm4l0w033cdng5mevz5bkzzq 路径:/ 发送请求:任何类型的连接 过期:在会话结束时

我无法使用编程完成免责声明部分,但我认为如果我手动签署免责声明,那么我可以将cookie的详细信息输入到我的代码中,并直接连接到数据页。我尝试用下面的代码来实现这一点,但它只返回免责声明页面的html,这意味着它没有使用我提供的cookie数据。我做错了什么

procedure TfmMain.GetWebpageData;
var
  http: TIdHTTP;
  cookie: TIdCookieManager;
  sResponse: String;
begin
  try
    http := TIdHTTP.Create(nil);
    http.AllowCookies := True;
    http.HandleRedirects := True;
    cookie := TIdCookieManager.Create(nil);
    cookie.AddCookie('ASP.NET_SessionId=vm4l0w033cdng5mevz5bkzzq', 'inventory.data.xyz.com');
    http.CookieManager := cookie;

    sResponse := http.Get('http://inventory.data.xyz.com/provide_data.aspx?ID=41100&Mixed=no?fc=true&lang=en');
    ShowMessage(sResponse);  // returns text of disclaimer
  except

  end;
end;

由于您没有提供真正的URL,我只能推测,但您提供给
TIdCookieManager
的cookie值可能是错误的,或者在
TIdHTTP.Get()
尝试使用它时已经过时,或者更可能的是
TIdCookieManager.AddCookie()
完全拒绝了cookie(如果未触发
TIdCookieManager.OnNewCookie
事件,则cookie不被接受)。

好的,我找到了答案。我将项目移动到DelphiXE,一切正常。我使用的是Delphi 7和我读到的第一个Indy 10,其中一个基本上与cookie不兼容。当前版本按照tin上的说明执行。