c++ - QT中如何更新COOKIE的过期时间
天蓬老师
天蓬老师 2017-04-17 12:04:51
[C++讨论组]

我制作了一个应用,登陆邮箱时得到网站的cookie,这个时候我将cookie保存到一个全局变量中,然后使用该cookie,进行邮件访问,但是时间长了之后,这个cookie就失效了,正常情况在浏览器访问网站cookie是会更新的,不会失效的。我尝试了每隔一段时间,全新将当前的cookie替换到全局变量,但是这个办法行不通。
请不要告诉我再登陆一次,那样不是完美的解决方案。。

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(1)
阿神

此问题我已解决,采用的方式是:
cookie->cookie.txt->QString->每5分钟秒正则表达式替换时间->QString->request

QFile cookies(QDir::currentPath()+"/cookies.ini");
    if (cookies.exists()) {
        QList<QNetworkCookie> cookieList;
        cookies.open(QFile::ReadOnly);
        while (cookies.bytesAvailable()) {
            QByteArray arr = cookies.readLine();
            QString cookie = QString::fromUtf8(arr);
            if (cookie.endsWith("\n")) cookie.chop(1);

            //! 添加正则表达式,替换时间
            QDateTime time=QDateTime::currentDateTime();
            QString strtime=time.addSecs(60*60*2).toString("yyyy-MM-dd hh:mm:ss");
            cookie.replace(QRegExp("(\\d{4}\\-\\d{1,2}\\-\\d{1,2}\\s\\d{1,2}\\:\\d{1,2}\\:\\d{1,2})"),QString("%1").arg(strtime));

//            qDebug()<<cookie;
//            qDebug()<<strtime;
//            qDebug()<<time.toUTC().toString();

            cookieList.append(QNetworkCookie::parseCookies(cookie.toUtf8()));
        }
        cookies.close();
        setAllCookies(cookieList);
    }
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号