读取 HTTP 标头

发布于 2024-11-25 17:56:24 字数 889 浏览 0 评论 0原文

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

我正在使用

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

什么都不返回。

我如何获取“完整”值?

I am trying to connect my application with a web service and here ,a user suggested to send custom headers back to my application.

I am using this code

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

from php i send this header

header('XAppRequest-Status: complete');

When running the application i can see that i get this header but i can't take the value of it cause

reply->rawHeader(bytes);

returns nothing.

How can i take the value 'complete'?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

醉城メ夜风 2024-12-02 17:56:24

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

Qt 文档说

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

我确实在 Qt 中使用网络服务/客户端,并且我注意到某些标头信息在我预期的情况下不可用!我必须“等待”这个信号来检查标题内容。

I suggest to connect a slot to the void QNetworkReply::metaDataChanged () signal of your reply.

The Qt doc says

This signal is emitted whenever the metadata in this reply changes.
metadata is any information that is not the content (data) itself,
including the network headers. In the majority of cases, the metadata
will be known fully by the time the first byte of data is received.
However, it is possible to receive updates of headers or other
metadata during the processing of the data.

I do use web-services/client with Qt and I noticed that some header's information are not available when I expected it to be ! I had to 'wait' for this signal to check the header content.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文