我正在使用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标头?
答案 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