Ну
Этот вопрос не получил и не ответил, поэтому я попал в список рассылки qtwebkit, и они были очень полезны.
Существенная вещь заключается в создании подкласса QNetworkCookieJar, наиболее важным методом является загрузка с диска, которую вы вызываете в своем конструкторе.
QList<QNetworkCookie> cookies;
if (m_file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&m_file);
QString txt = in.readAll();
QStringList lines = txt.split("\n");
foreach (QString c, lines) {
cookies.append(QNetworkCookie::parseCookies(c.toUtf8()));
}
m_file.close();
}
setAllCookies(cookies);
Конечно, вам также понадобится функция записи, например:
QTextStream out(&m_file);
foreach (const QByteArray &cookie, m_rawCookies)
out << cookie + "\n";
m_file.close();
А ваши сырые печенья вот так:
QList<QNetworkCookie> cookies = allCookies();
m_rawCookies.clear();
foreach (const QNetworkCookie &cookie, cookies) {
m_rawCookies.append(cookie.toRawForm());
}
Если вы загрузите исходный код webkit, вы можете взглянуть на код testbrowser для более полного примера.