• 8905阅读
  • 1回复

QWebView 设置自定义Cookie [复制链接]

上一主题 下一主题
离线zjhcool
 
只看楼主 倒序阅读 楼主  发表于: 2011-01-18
好久没写文章了,这段时间比较忙~~呵呵,进入正题
一、方法很简单,首先替换webview 默认的cookieJar:
    QNetworkCookieJar *m_cookieJar;
     m_cookieJar = new QNetworkCookieJar;
     view->page()->networkAccessManager()->setCookieJar( m_cookieJar );



至此m_cookieJar 就可以观测所有QWebView 的Cookie变化,如下:
//输出所有当前url 的cookie
         QByteArray str;

         QNetworkCookie cookie;
         QList<QNetworkCookie> list = m_cookieJar->cookiesForUrl (url);
         foreach (cookie ,list)
         {
             str += cookie.toRawForm() + "\n";
         }
         m_cookie = str;



二、设置自定义Cookie
//给baidu.com 设置cookie 为 cookie content venus
     m_cookieJar->setCookiesFromUrl(QNetworkCookie::parseCookies("cookie content venus"), QUrl("www.baidu.com"));



OK,收工~~~
上一篇: QEventLoop 销毁时注意事项

标签: QNetworkCookieJar, Qt, QUrl, QWebView
本文链接: QWebView 设置自定义Cookie
版权所有: Venus, 转载请注明来源Venus并保留链接地址!

相关文章




[ 此帖被zjhcool在2011-01-18 09:34重新编辑 ]
我的博客地址: http://newfaction.net
离线hcaihao

只看该作者 1楼 发表于: 2012-06-06
楼主能不能说明一下"cookie content venus"的格式,我替换成用浏览器截取的cookie,仍然无法实现自动登录。

例如:

    m_pMyCookieJar = new MyCookieJar(this);
    m_pMyCookieJar->setCookiesFromUrl(QNetworkCookie::parseCookies("BAIDUID=XXXXXXXXXXXXXXXXXXXXXXXXXXXX:FG=1; BDUT=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; BDUSS=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"), QUrl("www.baidu.com"));
    ui.mainWebView->page()->networkAccessManager()->setCookieJar(m_pMyCookieJar);

    ui.mainWebView->load(QUrl("http://www.baidu.com"));

快速回复
限100 字节
 
上一个 下一个