0
ウェブに表示されているようにcookie jarを実装しました。すべてのcookie値を受け取ることができます。
どのように私は理解していないすべてのクッキーを削除できますか?私のコードはどこにありますか?Qt QwebKit起動時にすべてのクッキーを削除するにはどうしたらいいですか?
#include <QNetworkCookieJar>
class QNetworkCookieJarEx : public QNetworkCookieJar
{
public:
QNetworkCookieJarEx()
: mEnabled(true){ }
bool enabled() const
{
return mEnabled;
}
void setEnabled(bool enabled)
{
if(mEnabled != enabled)
{
mEnabled = enabled;
// Possibly clear cookies, if we could get access to the parent class container. However, currently it is private.
// so how can i delete all the cookies ?
}
}
QList<QNetworkCookie> cookiesForUrl(const QUrl &url) const
{
if(mEnabled)
return QNetworkCookieJar::cookiesForUrl(url);
else
return QList<QNetworkCookie>();
}
bool setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url)
{
if(mEnabled)
{
QUrl u = url;
// here i can see the cookies values
QList<QNetworkCookie> cookies = allCookies();
foreach(QNetworkCookie cookie, cookieList) {
QString cookieName(cookie.name());
QString cookieValue(cookie.value());
QString cookiePath(cookie.path());
//simple logger
UT::getInstance()->MyLogToFile("cookieName:"+cookieName+
" cookieValue:"+cookieValue+
" cookiePath:"+cookiePath);
cookies += cookie;
}
return QNetworkCookieJar::setCookiesFromUrl(cookieList, url);
}
else
return false;
}
QList<QNetworkCookie> allCookies() const
{
if(mEnabled)
return QNetworkCookieJar::allCookies();
else
return QList<QNetworkCookie>();
}
void setAllCookies(const QList<QNetworkCookie>& cookieList)
{
if(mEnabled)
return QNetworkCookieJar::setAllCookies(cookieList);
}
protected:
bool mEnabled;
};
に空のリストを渡しますか? ウェブページがロードされたときに、すべてのメソッドが起動されます。私はコントロールを持っていません。 – user63898
'setEnabled'から呼び出すように見えます。それがあなたの意図ではないが、明示的な 'clear'メソッドが必要な場合は、空のリストで' setAllCookies'を呼び出すパブリックメソッドを作成するか、より多くのコントロールが必要な場合は 'setAllCookies'を直接パブリックメソッド。 –