QT REST 开发用于 Linux 上的 HTML Web 客户端
Posted
技术标签:
【中文标题】QT REST 开发用于 Linux 上的 HTML Web 客户端【英文标题】:QT REST development for HTML web client on linux 【发布时间】:2014-09-30 09:08:14 【问题描述】:在 Linux 系统中,我们需要将数据流传输为 JSON 格式以进行实时数据通信。例如,我们正在通过 Web 客户端调整音量,而不是它应该发布到服务器,反之亦然。 使用 QT 构建其余开发的最佳方法可能是与其他模块通信。
【问题讨论】:
Slyps 我会照你说的做。实际上我正在寻找一些好的例子,因为我对这个 HTTP 服务器完全陌生。我之前是 Qt Gui 开发人员,对 HTTP 一无所知 我也想知道如何使用 HTTPs 进行路由。 github.com/supamii/QttpServer 是基于 Qt 的 Http 服务器的 QttpServer,它支持 RESTish 思想,即支持 JSON、API 路由,最重要的是 Qt 【参考方案1】:在 Qt 5 中增加了对 JSON 的直接支持。检查可用的类here。
要与 Web 部件通信,您应该使用 QNetworkManagerAccess 类。
这是如何实现的示例(未测试):
QVariantMap top;
top.insert( "key1", QString( "value1" ) );
top.insert( "key2", QString( "value2" ) );
const QJsonDocument doc = QJsonDocument::fromVariant(top);
QByteArray postData = doc.toJson();
QNetworkAccessManager* manager = new QNetworkAccessManager(this);
QNetworkRequest req;
req.setUrl(QUrl("http://www.test.com"));
req.setHeader(QNetworkRequest::ContentTypeHeader,"application/json");
QNetworkReply *reply = manager->post(req,postData);
...
【讨论】:
您好,能否给我一些小的示例项目源代码,用于处理实时流式传输等 HTTP 请求响应。 @Wagmare,抱歉,没有,但我相信您现在可以很快自己制作。 我只是想知道如何在 Web 服务器中为客户端请求路由以将请求导航到特定功能/处理程序。以上是关于QT REST 开发用于 Linux 上的 HTML Web 客户端的主要内容,如果未能解决你的问题,请参考以下文章
Qt Creator远程调试嵌入式ARM开发板上的Linux程序