关于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;
你得先确定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:38 编辑
零下八度 发表于 2023-1-4 21:34
你得先确定php的接受格式。
你写了 Header :ContentType "application/json" 那么格式就是 json 的了:
...
搞定了非常感谢, 真是一语惊醒梦中人啊 本帖最后由 隐藏英雄 于 2023-1-4 23:39 编辑
零下八度 发表于 2023-1-4 21:34
你得先确定php的接受格式。
你写了 Header :ContentType "application/json" 那么格式就是 json 的了:
...
大佬麻烦 再问一下 我这样接收返回的数据接收到的空数据。麻烦了
jhhhhhhhhhhhh 抱歉。这个我也不会,我是学.net的,不会PHP,也没装QT。 隐藏英雄 发表于 2023-1-4 22:31
大佬麻烦 再问一下 我这样接收返回的数据接收到的空数据。麻烦了
你倒是在里面打印啊VersionData 能在外面用?????也没看到你赋值出去啊
qt编译器不报错吗 隐藏英雄 发表于 2023-1-4 22:31
大佬麻烦 再问一下 我这样接收返回的数据接收到的空数据。麻烦了
php这种写法是接收formData形式的 接收json形式应该这样
json_decode(file_get_contents('php://input'), true); 昨天也遇到了将headr设置为:ContentType "application/json“这个东西传的是form形式的数据,后来转为JSON就OK了,吾爱还是大神老多了
页:
[1]