用qt编写http get获取json数据
时间: 2023-05-21 12:04:18 浏览: 475
可以使用 Qt 的 QNetworkAccessManager 类来发送 HTTP GET 请求并获取 JSON 数据。以下是示例代码:
```cpp
#include <QCoreApplication>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QJsonDocument>
#include <QJsonObject>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QNetworkAccessManager manager;
QNetworkRequest request(QUrl("https://jsonplaceholder.typicode.com/todos/1"));
QNetworkReply *reply = manager.get(request);
QObject::connect(reply, &QNetworkReply::finished, [&]() {
QByteArray data = reply->readAll();
QJsonDocument doc = QJsonDocument::fromJson(data);
QJsonObject obj = doc.object();
qDebug() << "userId:" << obj["userId"].toInt();
qDebug() << "id:" << obj["id"].toInt();
qDebug() << "title:" << obj["title"].toString();
qDebug() << "completed:" << obj["completed"].toBool();
reply->deleteLater();
QCoreApplication::quit();
});
return a.exec();
}
```
此代码使用 QNetworkAccessManager 类发送 HTTP GET 请求,并获取 https://jsonplaceholder.typicode.com/todos/1 返回的 JSON 数据。您可以将请求的 URL 更改为您自己的 API 地址。
注意:为了方便起见,我在 lambda 表达式中直接使用了 qDebug 函数输出 JSON 数据中的元素。在实际项目中,建议您将解析 JSON 数据的代码封装为独立的函数或类。
阅读全文