web-dev-qa-db-ja.com

JSONデータを提供する単純なWebServiceをC ++ / Qt(サーバーとして機能)で作成する

シンプルなWebサービス(「サーバー」)を作成する必要があります。目標は、Qt/C++アプリケーションで読み取るデータを [〜#〜] json [〜#〜] データとして提供することです。基本的に、ブラウザのJavaScriptアプリケーションはQtアプリからデータを読み取ります。通常、これはシングルユーザーシナリオであるため、ユーザーはブラウザーでGoogleマップアプリケーションを実行し、追加のデータはQtアプリケーションから取得します。

これまでのところ、私はこれらのライブラリを見つけました:

  1. Qxt: http://libqxt.bitbucket.org/doc/0.6/index.html ですが、C++/Qtの初心者なので、いくつかの例がありません。追加:私は1つの例を見つけました ここ
  2. gSoap: http://www.cs.fsu.edu/~engelen/soap.html より多くの例とドキュメントがあり、JSONもサポートしているようです
  3. KD SOAP: http://www.kdab.com/kdab-products/kd-soap/ 私の知る限り、例はありませんが、docuは here です。
  4. Qtはそれ自体を機能させますが、それはクライアントとして機能することの詳細です: http://qt-project.org/videos/watch/qt-networking-web-services

SOをチェックすると、基本的に上記のライブラリへのリンクが表示されます

  1. Qtを使用したWebサービス 例では、実際には取得しません。
  2. QtでWebサービスを作成する方法

だから基本的に私は次の質問を持っています:

  1. どのlibを使用しますか?私はそれをできるだけ単純にしたいと思っており、が必要になります。
  2. JSONデータをWebService以外にJavaScript Webページに提供する(簡単な)別の方法はありますか?

-編集、備考:---

アプリケーション固有である必要があります。 Webサーバーをインストールしたり、追加のランタイムを使用したりすることはできません。ユーザーはアプリを実行するだけです。たぶんQt WebKitはアプローチかもしれません...

-編集2-

現在SO " Qt HTTP Server? "の時点で小さなWebサーバーをチェックしています

17
Horst Walter

私のテストでは、現在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);
}

他のライブラリと簡単に共有できる例がある場合は、私に知らせてください。

15
Horst Walter
_QByteArray ba = dp.toLocal8Bit();
const char *baChar = ba.data();
_

QByteArrayをchar配列に変換する必要はありません。 Response.write()QByteArrayで呼び出すこともできます。

ちなみに:qPrintable(dp)QStringからchar配列に変換するショートカットです。

1
Stefan