Qt - 如何使用 QNetworkAccessmanager 获取 responseText

Posted

技术标签:

【中文标题】Qt - 如何使用 QNetworkAccessmanager 获取 responseText【英文标题】:Qt - How to get responseText with QNetworkAccessmanager 【发布时间】:2011-11-02 13:35:22 【问题描述】:

这是我的代码:

Widget::Widget()

    manager = new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)),this, SLOT(replyFinished(QNetworkReply*)));

    manager->get(QNetworkRequest(QUrl("http://qt.nokia.com")));

void Widget::replyFinished(QNetworkReply* reply)

    //some other code here

我希望 reply 会有一些类似 getrespnsetext() 的方法,但它不是... 有人可以给我看一个例子吗,我需要的只是打印出响应文本(有没有像 javascript Ajax 中的任何方式) 感谢您的帮助!

【问题讨论】:

可能重复:***.com/q/7177433/894321 【参考方案1】:

您只需要在replyFinished(...) 函数内使用reply->readAll() 即可读取所有返回的文本。它返回一个QByteArray,所以你可以从那里做任何你想做的事情。

【讨论】:

【参考方案2】:

查看QNetworkReplyhere 的文档,特别是在完成的信号中,它提到您可以使用readAll() 获取所有数据的QByteArray。假设您知道这样的转换是否有效,QString 确实有一个以QByteArray 作为参数的构造函数,如here 所记录的那样。

【讨论】:

以上是关于Qt - 如何使用 QNetworkAccessmanager 获取 responseText的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Qt 与 Rust 一起使用?

如何使用基于 Qt 的依赖项来组织 Qt DLL

如何使用 Qt 获取屏幕尺寸?

如何在 Qt5 中使用 OpenCV

如何使用 meta-toolchain-qt5 构建 Qt(支持 QtWebEngine)?

如何使用 Qt webEngine 而不是 Qt webkit