0

我正在尝试将我的应用程序与 Web 服务连接起来,在这里,一位用户建议将自定义标头发送回我的应用程序。

我正在使用此代码

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);

什么都不返回。

我怎样才能获得“完整”的价值?

4

1 回答 1

3

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

Qt 文档说

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

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

于 2011-07-21T15:05:34.580 回答