c++ - 如何使用 Qt 5 将数据 POST 到服务器?

标签 c++ web-services qt post qt5

我正在尝试使用 Qt 5.1.1 将一些 json 数据发送到 Web 服务。那里有很多例子,但几乎所有都是针对 Qt 4.x 的,它的 API 略有不同。这是我现在正在尝试的:

QUrl url("http://...");
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
QByteArray jsonInPostFormat = "json=" + QUrl::toPercentEncoding(jsonAsString);
jsonInPostFormat.replace("%20","+");
reply = net->post(request, jsonInPostFormat);
connect(reply, SIGNAL(finished()),   this, SLOT(finishedAddComment()));

以上内容......没有效果。如果我做得正确,我似乎没有从服务器得到任何响应。 (我在finishedAddComment()中调用reply->readALL()。)

该服务有一个可以正常工作的测试表单。我已经转储了它发送的 header 并查看了 html,这只是指定了 post 方法的标准表单。

我做错了什么明显的事情吗?有没有更好的方法,比如使用 QUrlQuery?

查看 Qt 实际发送的原始 HTML 请求的某种方式将非常有帮助......

谢谢! 泰勒

最佳答案

Qt5 不再具有 QUrl::encodedQuery() 方法。不确定,但从文档来看,它可能可以使用 QUrl::query() 方法代替。

希望有帮助。

关于c++ - 如何使用 Qt 5 将数据 POST 到服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21205825/

相关文章:

c++ - Qt C++ - 如何保护文件

C++ 被迫进行奇怪的转换以摆脱 "expression should be a modifiable lvalue"

C++ openmp比串行实现慢得多

java - 在 Java 中加载静态编译的库

c# - Web 服务的验证和验证规则

c# - 通过 Web 服务调用启动长时间运行的作业

java - 使用 Web 服务和 2 路 SSL

c++ - 在 Windows 上获取默认应用程序图标

c++ - 使用尚未定义的参数的 unique_ptr 实例化不会导致错误

c++ - 在 qt 中打印阿拉伯文本的替代方法