QNetworkAccessManager和HTTP持久连接

时间:2013-11-23 13:15:57

标签: qt qt4 pyqt pyqt4 pyside

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

如果我在第一个请求完成之后完成第二个请求,如下所示

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

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

1 个答案:

答案 0 :(得分:1)

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

  • 转储传出请求的HTTP标头(已知和原始)。您应该会看到Connection: Keep-Alive标题集。
  • 转储响应标头。 应该是网络服务器设置的Connection: Close

有时,网络服务器不会尊重keep-alive标头,无论如何都会发送close。在这种情况下,客户端正确地关闭连接。

相关问题