You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Qt中通过POST请求向Web服务发送QList<int>?

如何将QList添加到QUrlQuery中发送POST请求

针对你的需求,有两种常见的实现方式,具体选哪种取决于你的Web服务后端如何接收列表数据:

方式1:重复添加相同键名的Query Item

如果你的后端支持同一个参数名接收多个值(比如digits=1&digits=2&digits=3这种格式),可以遍历你的QList<int>,把每个整数转成字符串后重复添加到QUrlQuery中:

QList<int> list;
// 假设list已经填充好数据
QUrlQuery query;

// 遍历列表,逐个添加参数
for(int num : list) {
    query.addQueryItem("digits", QString::number(num));
}

// 发送POST请求
QNetworkReply* reply = postRequest(query, "www.myapi.com/api/Book/SaveDigits");
connect(reply, SIGNAL(finished()), this, SLOT(getListFinished()));

这种方式简单直接,适合后端已经配置好接收多值参数的场景。

方式2:将列表序列化为JSON字符串(更推荐复杂数据场景)

如果你的后端期望接收结构化数据,建议把QList<int>序列化为JSON数组,作为单个Query Item的值,或者直接放到POST请求体中(如果你的postRequest方法支持):

序列化列表为JSON并作为Query参数提交

#include <QJsonArray>
#include <QJsonDocument>

QList<int> list;
// 填充数据...

QJsonArray jsonArray;
for(int num : list) {
    jsonArray.append(num);
}

// 转换为紧凑格式的JSON字符串
QString jsonStr = QJsonDocument(jsonArray).toJson(QJsonDocument::Compact);

QUrlQuery query;
// 将JSON字符串作为单个参数提交
query.addQueryItem("digitsList", jsonStr);

// 发送请求
QNetworkReply* reply = postRequest(query, "www.myapi.com/api/Book/SaveDigits");
connect(reply, SIGNAL(finished()), this, SLOT(getListFinished()));

这种方式更适配复杂数据结构,后续扩展其他类型数据也更灵活。需要注意后端要能解析这个JSON字符串并还原成整数列表。

直接发送JSON请求体(RESTful API常用方式)

如果你的postRequest方法支持直接发送请求体,可以跳过QUrlQuery,直接把JSON数据作为请求体发送,这更符合标准API规范:

// 构建JSON数组
QJsonArray jsonArray;
for(int num : list) {
    jsonArray.append(num);
}

QJsonDocument doc(jsonArray);
QByteArray postData = doc.toJson(QJsonDocument::Compact);

// 假设postRequest有重载版本,支持传入请求体、Content-Type和接口地址
QNetworkReply* reply = postRequest(postData, "application/json", "www.myapi.com/api/Book/SaveDigits");
connect(reply, SIGNAL(finished()), this, SLOT(getListFinished()));

你可以根据后端接口的具体要求选择合适的方式,如果不确定接口规则,先看后端文档或者用第一种方式快速测试兼容性。

内容的提问来源于stack exchange,提问作者mohsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:48:57