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程序

如何建立Qt Creator交叉编译嵌入式Linux

用于嵌入式Linux的QT库4.7.1如何安装

OpenGL 3.0 不适用于 Windows 上的 Qt

Linux 上的 Qt 5.8 (ubuntu 16.04) 应用程序部署

qt介绍