如何在 Qt 中的 HTTP Post 之后从 PHP 发回数据?
Posted
技术标签:
【中文标题】如何在 Qt 中的 HTTP Post 之后从 PHP 发回数据?【英文标题】:How to send data back from PHP after a HTTP Post in Qt? 【发布时间】:2011-04-26 18:12:07 【问题描述】:我正在使用此代码制作一个简单的 HTTP Post(登录)
QNetworkAccessManager *nwam = new QNetworkAccessManager;
QNetworkRequest request(QUrl("http://localhost/laptop/trylogin.php"));
QByteArray data;
QUrl params;
QString userString(user);
QString passString(pass);
params.addQueryItem("user", userString );
params.addQueryItem("pass", passString );
data.append(params.toString());
data.remove(0,1);
QNetworkReply *reply = nwam->post(request,data);
如果记录成功与否,我如何在 Qt 中发送和读取响应?
【问题讨论】:
所有 HTTP 方法都有响应。因此,您的应用程序(无论使用哪种方法)都应该得到一些回报。 好的,但在我的情况下持有响应的对象是什么?我应该在 php 端做什么? 我不知道 Qt,但我认为这一行:“QNetworkReply *reply = nwam->post(request,data);”是你第一个问题的答案;其次,在 php 方面,你可以返回任何东西,真的。如果你没有让它'echo'任何东西,那么它可能返回一个空字符串,所以尝试返回任何东西,看看'reply'的内容是否改变。另外,我认为“数据”什么都不做(至少在现在的情况下),但我不知道 Qt,所以我可能错了。 【参考方案1】:您在reply
指针中获得响应/回复。
使用QNetworkReply::error()
查看是否有错误。
【讨论】:
我每次都得到 NoError 代码,即使文件不存在。【参考方案2】:您可以捕获回复信号,因为它适用于信号和插槽。所以您必须将插槽连接到回复发出的信号 httpreadyread,然后通过回复.readAll 方法读取回复..阅读 qtnetwork 模块文档..
【讨论】:
以上是关于如何在 Qt 中的 HTTP Post 之后从 PHP 发回数据?的主要内容,如果未能解决你的问题,请参考以下文章