Qt4 如何将会话信息加载到qtwebkit中?

Qt4 如何将会话信息加载到qtwebkit中?,qt4,pyqt4,qtwebkit,Qt4,Pyqt4,Qtwebkit,我正在基于Qtwebkit构建一个专门的浏览器。我想在登录经过身份验证的网站时保存会话信息,并在重新启动浏览器时再次加载此信息。我如何才能做到这一点?大多数网站使用cookies存储会话id。您可以使用 并使用 您可以使用 使用 会话id也可以作为url的一部分存储,或者存储在页面的隐藏表单字段中。如果站点使用前者,则足以保存url;如果站点使用后者,则还必须保存页面本身 现在任务变得更加复杂,因为可以使用。如果网站使用web存储,除了上述所有数据外,您还应注意保存和恢复它。您可以使用

我正在基于Qtwebkit构建一个专门的浏览器。我想在登录经过身份验证的网站时保存会话信息,并在重新启动浏览器时再次加载此信息。我如何才能做到这一点?

大多数网站使用cookies存储会话id。您可以使用

并使用

您可以使用

使用

会话id也可以作为url的一部分存储,或者存储在页面的隐藏表单字段中。如果站点使用前者,则足以保存url;如果站点使用后者,则还必须保存页面本身

现在任务变得更加复杂,因为可以使用。如果网站使用web存储,除了上述所有数据外,您还应注意保存和恢复它。您可以使用

并使用


您可能会在邮件列表和freenode.net上的#qtwebkit IRC频道上获得更多信息

您可以参考QNetworkCookieJar 虚拟成员函数
bool CookieHandler::setCookiesFromUrl(const QList&cookieList,const QUrl&url)
可用于将cookie保存到您自己的持久存储中。 比如说,

bool CookieHandler::setCookiesFromUrl (const QList<QNetworkCookie> & cookieList, const QUrl & url) {
    foreach(QNetworkCookie i, cookieList) {
    // probably don't want to store session cookies
    if (!i.isSessionCookie()) {
      // save the cookie to own storage format
    }
}
return true;
bool-CookieHandler::setCookiesFromUrl(const-QList&cookieList,const-QUrl&url){
foreach(QNetworkCookie i,cookieList){
//可能不想存储会话cookie
如果(!i.isSessionCookie()){
//将cookie保存为自己的存储格式
}
}
返回true;
}

受保护的成员函数
void QNetworkCookieJar::setAllCookies(const QList&cookieList)
用于将Cookie从您自己的存储还原到QNetworkCookieJar,因为QNetworkCookieJar没有实现永久存储:它只将Cookie保存在内存中。 示例代码

void CookieHandler::setAllCookiestoJar() {
    // retrieve cookies from local database
    QList<QNetworkCookie> cookieList = this->getCookiesFromLocalDB();
    this->setAllCookies(cookieList);
    // check if they are correctly loaded
    QList<QNetworkCookie> cookieList_tmp = this->allCookies();
    foreach(QNetworkCookie i, cookieList_tmp)
      qDebug() << i.toRawForm(QNetworkCookie::Full);
void CookieHandler::setAllCookiestoJar(){
//从本地数据库检索cookie
QList-cookieList=this->getCookiesFromLocalDB();
此->设置所有cookies(cookieList);
//检查它们是否正确加载
QList cookieList_tmp=this->allCookies();
foreach(QNetworkCookie i,cookieList_tmp)
qDebug()