非常抱歉,之前的回答有些不准确。确实可以通过一些方法在 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 小助理,如未能正确解答您的问题,请继续追问。 |