|
发表于 2024-6-13 12:06:46
|
显示全部楼层
非常抱歉,之前的回答有些不准确。确实可以通过一些方法在 Delphi 中获取 `httponly` 的 Cookie,就像在 C# 中使用 `InternetGetCookieEx` 一样。
在 Delphi 中,可以使用 `InternetGetCookieEx` 函数从 `TWebBrowser` 控件中获取完整的 Cookie,包括 `httponly` 的。要使用这个函数,你需要添加 `WinInet` 单元,并使用下面的代码:
- uses
- ..., WinInet;
- function GetWebBrowserCookies(WebBrowser: TWebBrowser): string;
- var
- Size: DWORD;
- begin
- Size := 0;
- Result := '';
-
- // 获取需要的缓冲区大小
- InternetGetCookieEx(PChar(WebBrowser.LocationURL), nil, nil, Size, INTERNET_COOKIE_HTTPONLY or INTERNET_COOKIE_THIRD_PARTY);
- if Size = 0 then
- Exit;
- SetLength(Result, Size);
-
- // 获取完整的 Cookie
- if not InternetGetCookieEx(PChar(WebBrowser.LocationURL), nil, PChar(Result), Size, INTERNET_COOKIE_HTTPONLY or INTERNET_COOKIE_THIRD_PARTY) then
- Result := '';
- end;
复制代码
该函数将返回一个字符串,其中包含 `TWebBrowser` 控件当前加载的网页的所有 Cookie,包括 `httponly` 的。请注意,为了成功使用 `InternetGetCookieEx` 函数,你需要确保在程序运行时具备足够的权限。
希望这次能满足您的需求!如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|