2013-09-28 2 views
4

우리 사이트의 사용자 페이지를 보여주는 QWebView로 프로그램을 만들고 있습니다. 동시에 QNetworkManager를 사용하여 백그라운드 HTTP 요청을 사이트에 보내려고합니다. 사용자의 쿠키를 QWebView와 QNetworkManager간에 공유하여 하나의 세션 만 가질 수있는 방법이 있습니까? 현재 사용자는 QWebView에 로그인 할 수 있지만 QNetworkManager 객체에서 get() 호출을하면 사이트는 QWebView에 로그인되어 있어도 사용자가 로그인하지 않은 것처럼 작동합니다.QNetworkAccessManager에서 QWebView 쿠키/세션을 사용할 수 있습니까?

답변

5

예. QNetworkAccessManager::cookieJar()을 사용하면 QNetworkAccessManager에 대한 쿠키를 처리하는 QNetworkCookieJar 핸들을 얻을 수 있습니다. 이 쿠키는 많게는 WebViews으로 설정할 수 있습니다.

QWebView webView = new QWebView(); 
QNetworkCookieJar cookieJar = new QNetworkCookieJar(); 
QNetworkAccessManager nam = new QNetworkAccessManager(); 
nam.setCookieJar(cookieJar); 
webView.page()->setNetworkAccessManager(nam); 
+0

감사합니다.이 솔루션은 내가 필요한 것입니다! – Aurast