如何在qt应用程序中保存http会话

Posted

技术标签:

【中文标题】如何在qt应用程序中保存http会话【英文标题】:How to save the http session in qt application 【发布时间】:2013-07-16 06:58:13 【问题描述】:

现在我有一个用 php 编写的 web 服务器。还有一些用于数据库访问的 php 脚本文件。我正在编写一个 Qt 应用程序来向远程 php 脚本发送 get/post 请求。但是,为每个请求验证用户身份并不方便。所以,我想在 Web 服务器上使用会话控制。但我不知道如何在 Qt 应用程序中进行操作。

【问题讨论】:

也许 this 会帮助您在应用中获得 cookie 支持,然后您就可以像在网络浏览器中一样使用会话。 PHP 使用令牌来处理会话身份,该令牌要么保存在 cookie 中,要么通过 url 传递。因此,您只需要在服务启动时传递 WS 返回的令牌即可。让我们看看您的 qt 应用程序的 http 请求部分,以便我们了解您如何处理请求和回答会更有帮助。 @Orangepill 非常感谢,您的评论对我有帮助,cookie 是正确的方法 :) 【参考方案1】:

正如Orangepill和PLB所说,解决方案是Passing cookies to the request url,您可以参考QNetworkAccessManager::setCookieJar

步骤

    实例化QNetworkAccessManager 对象并为它调用setCookieJar。 向激活会话的身份验证页面发送 POST 请求。然后你会从cookieJar中的页面获得cookie。 向域下的页面发送请求时会话处于活动状态。

【讨论】:

以上是关于如何在qt应用程序中保存http会话的主要内容,如果未能解决你的问题,请参考以下文章

如何在qt中的QTableWidget中保存和加载数据

Java JPA:如何跨 HTTP 请求保持会话活动?

Android 和 IOS 上的 Qt 会话管理

在 iPhone 中保存 Spotify 登录的用户会话

如何在 Java 中访问 HTTP 会话

如何在 Java 中访问 HTTP 会话