2012-07-19 2 views
16

シンプルウェブサービス(「サーバー」)を作成する必要があります。目標はQt/C++アプリケーションで読み取ったデータをJSONデータとして提供することです。基本的にブラウザのJavaScriptアプリケーションはQtアプリケーションからデータを読み込みます。通常は単一のユーザーシナリオなので、ユーザーはブラウザでGoogle Mapsアプリケーションを実行し、追加データはQtアプリケーションから取得します。JSONデータを提供するC++/Qt(サーバーとして動作する)でシンプルなWebServiceを作成

これまでのところ、私が発見したこれらのlibs:

  1. Qxt:http://libqxt.bitbucket.org/doc/0.6/index.htmlが、私はいくつかの例を欠場C++/Qtの上の初心者であること。追加:私はhere
  2. のgSOAPの一例を発見した:http://www.cs.fsu.edu/~engelen/soap.htmlは、より多くの例やドキュメントを持っており、またJSON
  3. KDのSOAPをサポートしているようだ:私の知る限りがない例とhttp://www.kdab.com/kdab-products/kd-soap/、ドキュメンタリーはhere
  4. Qtの特徴でありますそれ自体は、それがクライアントとして動作する詳細です:基本的に私を与えhttp://qt-project.org/videos/watch/qt-networking-web-services

SOチェック上記のLIBSにリンク

  1. webservice with Qt例で私は実際には得られません。
  2. How to Create a webservice by Qt

だから、基本的に私は次の質問ています:LIBはあなたが使用する

  1. を?私はできるだけシンプルにしたいと思っており、の例が必要です。
  2. JSONデータをWebService以外のJavaScript Webページに提供するもう一つの方法はありますか?

- 編集、備考:---

は固有のアプリケーションにする必要があります。 Webサーバーをインストールすることはできません。余分な実行時間を使用することはできません。ユーザーがアプリを実行するだけです。たぶんQtのWebKitがアプローチ可能性が....

-

現在、現在、私は、私のテストのように「Qt HTTP Server?

+1

既存のWebサーバーから呼び出されているCGIプログラムとして作成してみませんか?おそらくもっと簡単です。 –

+0

これは基本的にデスクトップのシナリオです。データはユーザーのPCのみに存在し、各ユーザーのPCにWebサーバーをインストールすることはできません。 WebAppは、Google Mapsを搭載しているためにのみ使用されます。 –

+1

[Jetty](http://jetty.codehaus.org/jetty/)とお考えですか? IIRCにはインストールが必要なく、Javaが必要です。 –

答えて

14

のように小さなWebサーバをチェック - 2編集しますQtWebAppを使用して:http://stefanfrings.de/qtwebapp/index-en.htmlこれはステファンの小さなWebServerのは、いくつかのよく文書化されたコードを持って編集し2の解答の1(Qt HTTP Server?

で、すでにサーブレットで働いている場合は特に、「QtのC++」で書かれており、使いやすいです。 Qtプロジェクトに簡単に統合することができるので、私は内部WebServerになります。

私の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); 
} 

誰かが他のライブラリと簡単に共有できる例がある場合は、教えてください。

+1

このプロジェクトの進化はありますか? –

+0

http://stefanfrings.de/qtwebapp/index-en.htmlへのリンクありがとう。私はhoutなどを使ってドキュメントを読んでいました。いいね。 githubにする必要があります – iep

2
QByteArray ba = dp.toLocal8Bit(); 
const char *baChar = ba.data(); 

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

ところでqPrintable(dp)QStringからchar配列に変換するためのショートカットです。

関連する問題