qt - QNetworkAccessManager 和 HTTP 持久连接

标签 qt qt4 pyqt pyqt4 pyside

默认情况下,HTTP 1.1 支持持久连接,因此我想使用在发出第一个 HTTP 请求时设置的相同连接发送我的第二个 http 请求。这如何通过 Qt 实现?

如果我只是在第一个请求完成后发出第二个请求,如下所示

manager->get(QNetworkRequest(QUrl("http://qt-project.org")));

似乎将启动到服务器的新 TCP 连接(我已经用网络嗅探器检查过)
实验还说:如果回复是deleteLater()或abort()内
完成()信号,连接将被关闭。

最佳答案

您可以执行以下操作以进一步调查:

  • 转储传出请求的 HTTP header (已知和原始)。你应该看到一个 Connection: Keep-Alive header 集。
  • 转储响应头。不应该有 Connection: Close由网络服务器设置

  • 有时网络服务器不尊重 keep-alive header 并将发送 close反正。在这种情况下,客户端正确地关闭了连接。

    关于qt - QNetworkAccessManager 和 HTTP 持久连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20162767/

    相关文章:

    python - 如何将 QML Drawer 与 Qt Widgets 一起使用?

    c++ - 使用 QAudioProbe 从原始数据中绘制波形

    c++ - Qt4应用程序崩溃,单击连接按钮时出现段错误

    flash - QWebview:如何检测Flash视频完成?

    python - Qt.QueuedConnection 从不发送消息

    c++ - 在 QDateTime 中格式化小时数的 Qt4 问题

    c++ - 应用程序的设计模式选择

    c++ - QtConcurrent::run 异常通知

    c++ - Qt,颜色选择器对话框?

    c++ - QStandardItemModel 最有效的行删除策略