读取http请求标头(Qt / c ++)

时间:2013-11-29 14:36:05

标签: c++ qt http-headers qt5 qt5.1

我正在尝试读取我可以登录到日志文件的http请求标头(使用Qt / c ++)。我可以使用以下简单代码读取响应头:

QList<QByteArray> headerList = pReply->rawHeaderList();

foreach(QByteArray head, headerList)
{
    qDebug() << head << ":" << pReply->rawHeader(head);
}

pReply->close();

但到目前为止,我对请求标题没有运气。在寻找我遇到的解决方案时 这篇文章:Read complete HTTP request-header;但我真的不明白如何用Qt实现类似的功能。

我有点迷茫。我应该怎么做呢?

2 个答案:

答案 0 :(得分:1)

rawHeader实际上是QByteArray的QPair。见:RawHeader。您可以使用RawHeader而不是QByteArray为每个执行一次,或者只是遍历列表:

    QList<QByteArray> headerList = pReply->rawHeaderList();

    for (int i = 0; i < rawHeaderList.count(); ++i) {
        qDebug() << head << ":" << pReply->rawHeader(i);
    }

    pReply->close();

答案 1 :(得分:0)

没有直接的方法来获取请求标头,但是您可以获取标头列表并对其进行迭代并保存在QVariantMap中。这是一个示例代码。

auto reqHeaderName = reply->request().rawHeaderList();
QVariantMap reqHeaders;
for (QString header : reqHeaderName)
{
    reqHeaders.insert(header, reply->request().rawHeader(header.toUtf8()));
}