2010-08-01 2 views

답변

2

대부분의 웹 사이트는 세션 ID를 저장하기 위해 쿠키를 사용합니다. 당신은
QList<QNetworkCookie> QNetworkCookieJar::allCookies() const
를 사용하여 쿠키를 저장하고
void QNetworkCookieJar::setAllCookies(const QList<QNetworkCookie> & cookieList)
를 사용하여 다시로드 당신은
QNetworkCookieJar * QNetworkAccessManager::cookieJar() const
를 사용하여 QNetworkCookieJar를 얻을 수 있으며
QNetworkAccessManager * QWebPage::networkAccessManager() const

세션 ID를 사용하여 QWebPage에 의해 수 있습니다 사용 QNetworkAccessManager를 얻을 수 있습니다 또한 url의 일부로 저장되거나 페이지의 숨겨진 양식 필드에 저장됩니다. 사이트가 전자 메일을 사용하는 경우 URL을 저장하기에 충분하며 전자 메일을 사용하는 경우 페이지 자체도 저장해야합니다.

Web Storage을 사용할 수 있으면 작업이 더 복잡해집니다. 사이트가 웹 저장소를 사용하는 경우 위의 모든 데이터 외에도 저장 및 복원을 처리해야합니다. 당신은 당신은 webkit-qt 메일 링리스트 및 freenode.net에 #qtwebkit의 IRC 채널에 좀 더 많은 정보를 얻을 수 있습니다
void QWebSettings::setOfflineStoragePath(const QString & path)
를 사용하여 오프라인 저장 위치를 ​​설정하고
QString QWebSettings::offlineStoragePath()
를 사용하여 얻을 수

0

당신은 참조 할 수 있습니다 ~ QNetworkCookieJar 가상 멤버 함수 bool CookieHandler::setCookiesFromUrl (const QList<QNetworkCookie> & cookieList, const QUrl & url)은 쿠키를 사용자의 영구 저장소에 저장하는 데 사용할 수 있습니다. 예를 들어 ,

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; 

}

보호 기능 void QNetworkCookieJar::setAllCookies (const QList<QNetworkCookie> & cookieList)이 QNetworkCookieJar 영구 저장 장치를 구현하지 않기 때문에 QNetworkCookieJar에 자신의 저장소에서 쿠키를 복원하는 데 사용됩니다 회원 : 그것은 단지 메모리에 쿠키를 유지합니다. 예제 코드,

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); 

}

관련 문제