シンプルなWebサービス(「サーバー」)を作成する必要があります。目標は、Qt/C++アプリケーションで読み取るデータを [〜#〜] json [〜#〜] データとして提供することです。基本的に、ブラウザのJavaScriptアプリケーションはQtアプリからデータを読み取ります。通常、これはシングルユーザーシナリオであるため、ユーザーはブラウザーでGoogleマップアプリケーションを実行し、追加のデータはQtアプリケーションから取得します。
これまでのところ、私はこれらのライブラリを見つけました:
SOをチェックすると、基本的に上記のライブラリへのリンクが表示されます
だから基本的に私は次の質問を持っています:
-編集、備考:---
アプリケーション固有である必要があります。 Webサーバーをインストールしたり、追加のランタイムを使用したりすることはできません。ユーザーはアプリを実行するだけです。たぶんQt WebKitはアプローチかもしれません...
-編集2-
現在SO " Qt HTTP Server? "の時点で小さなWebサーバーをチェックしています
私のテストでは、現在QtWebAppを使用しています: http://stefanfrings.de/qtwebapp/index-en.html これは編集2( Qt HTTP Server ? )
Stefanの小さなWebServerには、十分に文書化されたコードがいくつかあり、「Qt C++」で記述されており、特にサーブレットを使用したことがある場合は、簡単に使用できます。私のQtプロジェクトに簡単に統合できるので、最終的には内部Webサーバーになります。
JSONテストからのいくつかのデモコードは、JSONコンテンツの生成が基本的にQString
を作成していることを示しています。
void WebServiceController::service(HttpRequest& request, HttpResponse& response) {
// set some headers
response.setHeader("Content-Type", "application/json; charset=ISO-8859-1");
response.setCookie(HttpCookie("wsTest","CreateDummyPerson",600));
QString dp = WebServiceController::getDummyPerson();
QByteArray ba = dp.toLocal8Bit();
const char *baChar = ba.data();
response.write(ba);
}
他のライブラリと簡単に共有できる例がある場合は、私に知らせてください。
_QByteArray ba = dp.toLocal8Bit();
const char *baChar = ba.data();
_
QByteArray
をchar配列に変換する必要はありません。 Response.write()
はQByteArray
で呼び出すこともできます。
ちなみに:qPrintable(dp)
はQString
からchar配列に変換するショートカットです。