如何获取使用QNetworkRequest

时间:2016-04-01 08:54:47

标签: qt

我正在使用QNetworkRequest来执行https请求。我想调试它,并在它被发送到https服务器之前查看由此类构造的http头的所有内容。

到目前为止,我这样做了:

QString header_list;
QList<QByteArray> headerList = request->rawHeaderList();
foreach(QByteArray head, headerList)
   header_list += head + ": " + request->rawHeader(head) + "\n";

这导致字符串包含我使用setRawHeader显式设置的标题的所有部分,但它没有显示默认值或类本身添加的值,而没有我的干预。

通常情况下,我会使用tcpdump查看我的应用程序尝试发送到服务器的内容,但它使用的是SSL,因此我无法使用。

我真的很想看到&#34;真实&#34;实际上已经出局的标题,这是由于某种原因隐藏在类内部。

有没有任何简单的方法来检索它,所以我可以看到我的应用程序使用什么http标头?

1 个答案:

答案 0 :(得分:3)

HTTP标头设置为deep inside Qt网络模块。你无法得到它们。 默认标题如下:

Content-Length: 42 // if there is outgoing data
Proxy-Connection: Keep-Alive // if there is http proxy
Connection: Keep-Alive
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,en,* // depend on system locale
User-Agent: Mozilla/5.0
Host: www.google.com
Content-Type: application/x-www-form-urlencoded // if there is outgoing data, depend on data type