アプリによって生成されたCookieをなどのディスクの場所に保存しようとしていC:\Users\Username\AppData\Local\MyCompany\MyApp
ます。私はWebビューを実装し、単純なブラウザーのコーディングをほぼ完了しました。最後に行うことは、Cookieを保存することです。
Webアプリから取得したCookieをqDebug()できますが、Cookieが正しく形成されていることを示していますが、a)そこからどこに行くのかわからず、b)cookiejarクラスのサブクラスを作成する方法が100%わかりませんか?
以下では、MainWindowコンストラクターでcookiejarオブジェクトを作成します
view = new QWebView(this);
jar = new QNetworkCookieJar;
view->page()->networkAccessManager()->setCookieJar(jar);
そして、replyfinishedスロットで、返信に含まれているCookieを確認し、それを保存しようとしましたが、何も起こらず、実行時エラーは発生しません。これについてはそれほど多くのことはなく、サブクラスQNetworkCookieJarを作成するように指示されたが、以前はQt /C++でサブクラスを作成したことがない投稿をいくつか見ました。
クッキーを保存する簡単な方法はありますか、私は特別なものを探していません。Cookieは、ログインページでいくつかのチェックボックスがオンになっていることを確認するだけです。
// SLOT that accepts the read data from the webpage
void MainWindow::slotReplyFinished(QNetworkReply *reply){
if(reply->isFinished()){
QVariant variantCookies = reply->header(QNetworkRequest::SetCookieHeader);
QList<QNetworkCookie> cookies = qvariant_cast<QList<QNetworkCookie> >(variantCookies);
qDebug() << "Cookies reply: " << cookies;
QNetworkCookie cookie; //Create a cookie
jar = new QNetworkCookieJar;
//view->page()->networkAccessManager()->setCookieJar(jar);
jar->setCookiesFromUrl(cookies, reply->request().url());
//qDebug() << "Saved cookies: " << jar->getAllCookies();
}
qDebug() << "Network reply: " << reply->errorString() << reply->error() << reply->request().url();
}