隐藏英雄 发表于 2023-1-4 21:11

关于QT中POST的困惑

本帖最后由 隐藏英雄 于 2023-1-4 21:38 编辑

各种办法都试了,不会了。。。不知道要传的PostData怎么写
    QNetworkAccessManager* manager = new QNetworkAccessManager(this);
    QNetworkRequest res;
    QString PostData = QString("mac=00-00-00-00-00&ip=192.168.1.1");//.arg(strMacAddress).arg(Version); //要传的是2个变量先用字符串测试,
    QByteArrayPostData1 =PostData.toUtf8();
    qDebug() << "PostData1" <<PostData;

    res.setHeader(QNetworkRequest::UserAgentHeader,
                  "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36");

    res.setUrl(QUrl("http://www.xxx.com/mydata.php"));
    res.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");

    QNetworkReply* reply = manager->post(res, PostData1);
    qDebug() << "PostData2" <<PostData;






零下八度 发表于 2023-1-4 21:34

你得先确定php的接受格式。

你写了 Header :ContentType "application/json" 那么格式就是 json 的了:
json格式:
{
mac:"00-00-00-00-00",
ip:"192.168.1.1"
}

但是你传递的参数却是 form 格式的:
mac=00-00-00-00-00&ip=192.168.1.1

所以接口应该啥也收不到。

隐藏英雄 发表于 2023-1-4 21:35

本帖最后由 隐藏英雄 于 2023-1-4 21:38 编辑

零下八度 发表于 2023-1-4 21:34
你得先确定php的接受格式。

你写了 Header :ContentType "application/json" 那么格式就是 json 的了:
...
搞定了非常感谢, 真是一语惊醒梦中人啊

隐藏英雄 发表于 2023-1-4 22:31

本帖最后由 隐藏英雄 于 2023-1-4 23:39 编辑

零下八度 发表于 2023-1-4 21:34
你得先确定php的接受格式。

你写了 Header :ContentType "application/json" 那么格式就是 json 的了:
...





大佬麻烦 再问一下   我这样接收返回的数据接收到的空数据。麻烦了

jingkangY 发表于 2023-1-4 22:58

jhhhhhhhhhhhh

零下八度 发表于 2023-1-5 00:42

抱歉。这个我也不会,我是学.net的,不会PHP,也没装QT。

236A 发表于 2023-1-5 03:33

隐藏英雄 发表于 2023-1-4 22:31
大佬麻烦 再问一下   我这样接收返回的数据接收到的空数据。麻烦了

你倒是在里面打印啊VersionData 能在外面用?????也没看到你赋值出去啊
qt编译器不报错吗

13599383608 发表于 2023-1-5 08:45

隐藏英雄 发表于 2023-1-4 22:31
大佬麻烦 再问一下   我这样接收返回的数据接收到的空数据。麻烦了

php这种写法是接收formData形式的 接收json形式应该这样
json_decode(file_get_contents('php://input'), true);

gsz5211314 发表于 2023-1-5 09:23

昨天也遇到了将headr设置为:ContentType "application/json“这个东西传的是form形式的数据,后来转为JSON就OK了,吾爱还是大神老多了
页: [1]
查看完整版本: 关于QT中POST的困惑