コメントで既に述べたように、クライアントで実際に受け入れ検査を実行することはできません。サーバーだけがそれを行うことができます。あなたは除外することができますしかし
有効期限が切れたか、または無効クッキー:
function filterInvalidCookies(cookies: TIdCookies; targetURL: TIdURI): Boolean;
var
c: Integer;
begin
Result := False;
c := 0;
while (cookies.Count > c) do
if (not cookies[c].IsExpired and cookies[c].IsAllowed(targetURL, False) and
(cookies[c].CookieName <> '')) then
begin
Result := True;
Inc(c);
end
else
cookies.Delete(c);
end;
機能が無効なクッキーを削除し、左有効なものが存在しない場合はFalseを返します。
if (Assigned(con.CookieManager)) then
filterInvalidCookies(con.CookieManager.CookieCollection,
TIdURI.Create('http://www.someurl.com/'));
con
がTIdHTTP
オブジェクトです。このような要求の前にそれを呼び出します。
追加の、おそらくターゲットとするページ固有のチェックを行うことができます。
function CheckCookies(Cookies: TIdCookieManager; const TargetURL: String): Boolean;
var
URL: TIdURI;
Headers: TIdHeaderList;
begin
Result := False;
URL := TIdURI.Create(TargetURL);
try
Headers := TIdHeaderList.Create(QuoteHTTP);
try
Cookies.GenerateClientCookies(URL, False, Headers);
Result := Headers.Count > 0;
finally
Headers.Free;
end;
finally
URL.Free;
end;
end;
:
実際のページをリクエストし、コンテンツが自認のウェブページまたは何らかのエラーメッセージと一致するかどうかを確認する必要があります。それはサーバーがあなたのクッキーを受け入れているのを見ることができる唯一の方法です;) – opc0de
クッキーの有効性をチェックすることはできません。それはサーバーのタスク/責任です。クッキーは暗号化されて無駄なものになる可能性があります。 – whosrdaddy
いいえ、クッキーが期限切れになっているかどうかは確認できます。 'TIdCookieManager'にリクエストを送るURLのクッキーのリストを問い合わせ、実際にクッキーがリストに含まれているかどうか確認できます。 –