QNetworkAccessManager and HTTP persistent connection
HTTP 1.1 默认支持持久连接,所以我想使用第一个 HTTP 请求时设置的相同连接发送我的第二个 http 请求。这如何通过 Qt 实现?
如果我只是在第一个请求完成后发出第二个请求,如下所示
1 | manager->get(QNetworkRequest(QUrl("http://qt-project.org"))); |
似乎将启动到服务器的新 TCP 连接(我已经用网络嗅探器检查过)
实验还说:如果回复是 deleteLater() 或 abort() 内
finished() 信号,连接将被关闭。
您可以执行以下操作以进一步调查:
-
转储传出请求的 HTTP 标头(已知和原始)。您应该看到一个
Connection: Keep-Alive 标头集。 -
转储响应标头。网络服务器不应设置
Connection: Close
有时网络服务器不遵守