读取HTTP标头

时间:2011-07-21 14:56:25

标签: qt qt4 qnetworkaccessmanager

我正在尝试将我的应用程序与Web服务和here连接,用户建议将自定义标头发送回我的应用程序。

我正在使用此代码

void Coonnec::serviceRequestFinished(QNetworkReply *reply)
{
    QByteArray bytes = reply->readAll();

    if (reply->error() != QNetworkReply::NoError) {
        qDebug() << "Reply error: " + reply->errorString();
    }
    else
    {
        qDebug() << "Uploaded: " + QDateTime::currentDateTime().toString();
        qDebug() << reply->rawHeaderList();
    }
    reply->close();
    bytes.clear();
    reply->deleteLater();
}

从php发送此标题

header('XAppRequest-Status: complete');

当运行应用程序时,我可以看到我得到这个标题,但我不能接受它的值

reply->rawHeader(bytes);

什么都不返回。

我如何才能将价值“完整”?

1 个答案:

答案 0 :(得分:3)

我建议将一个插槽连接到您回复的void QNetworkReply::metaDataChanged ()信号。

Qt doc说

  

只要此回复中的元数据发生更改,就会发出此信号。   元数据是不是内容(数据)本身的任何信息,   包括网络标题。在大多数情况下,元数据   将在收到第一个数据字节时完全知道。   但是,可以接收标题或其他的更新   处理数据时的元数据。

我确实使用了Qt的web服务/客户端,我注意到一些标题的信息在我预期的时候是不可用的!我不得不“等待”这个信号来检查标题内容。