|
用QWebEngineView获取cookie的方式也记录一下,给其他人做个参考。QWebEngineView没找到直接去响应中的set-cookie,所以通登录后的界面去获取cookie,可以有两种方式去做:
方法1:此方法有些网页有可能获取不到,或者会得到不完整的cookie
m_webView->page()->runJavaScript("function GetCookie(){return document.cookie}");
m_webView->page()->runJavaScript("GetCookie();",[](const QVariant& v){
qDebug()<<v.toString();
});
方法2:QWebEngineView没找到一次性获取cookie,只能通过获取一次次的字段存到map中,最后在把map中的字段拼接起来
connect(m_webView->page()->profile()->cookieStore(), SIGNAL(cookieAdded(const QNetworkCookie &)),
this, SLOT(slog_cookieAdded(const QNetworkCookie &)));
void Widget::slog_cookieAdded(const QNetworkCookie &cookie)
{
m_mapCookie[cookie.name()]=cookie.value();
}
QString Widget::GetCookie()
{
m_strCookie.clear();
QMap<QString,QString>::iterator it;
for (it=m_mapCookie.begin();it != m_mapCookie.end();++it)
{
m_strCookie.append(it.key()+"="+it.value()+";");
}
return m_strCookie;
} |
|