JSONのシリアライズには、DynamicJsonを使っています。
これは簡単だ
GettingStartGuideのはじめの方にある、
helloサービスに接続するサンプルです。
var obj = new {
my_name = "3sons"
};
var jsonStringFromObj = Codeplex.Data.DynamicJson.Serialize(obj);
byte[] postDataBytes = System.Text.Encoding.ASCII.GetBytes(jsonStringFromObj);
System.Text.Encoding enc = System.Text.Encoding.GetEncoding("UTF-8");
System.Net.WebRequest req = System.Net.WebRequest.Create("http://localhost:8080/hello.hello");
req.Method = "POST";
req.ContentType = "application/json";
//POST送信するデータの長さを指定
req.ContentLength = postDataBytes.Length;
//データをPOST送信するためのStreamを取得
System.IO.Stream reqStream = req.GetRequestStream();
//送信するデータを書き込む
reqStream.Write(postDataBytes, 0, postDataBytes.Length);
reqStream.Close();
//サーバーからの応答を受信するためのWebResponseを取得
System.Net.WebResponse res = req.GetResponse();
//応答データを受信するためのStreamを取得
System.IO.Stream resStream = res.GetResponseStream();
//受信して表示
System.IO.StreamReader sr = new System.IO.StreamReader(resStream, enc);
string ret = sr.ReadToEnd();
//閉じる
sr.Close();
MessageBox.Show(ret);
C#は.Net2.0のころ触って以来ですが、いろいろ便利になってますね。varとか
現在、これを使ってGAEをバックエンドに使うWindowsアプリを開発中です。
ローカルDBにSQLiteを使い、定期的/必要に応じて、
ProtoRPCを使ってGAEのデータストアとレプリケーションを行います。
同じことはAndroidでもiPhone/iPadでもできるはずですので、
端末のフル機能を使用するクラウドシステムが構築できます。
また、クラウドの弱点である、ネットワークの混雑による遅延や、
ネットワークトラブルによりシステムが使えない、
といった問題を防ぐことができます。
0 件のコメント:
コメントを投稿