2

ServiceStack を使用してサーバーとクライアント (MonoDroid および Windows) を作成しました。すべて問題なく動作しますが、Compact Framework F3.5 を使用するモバイル クライアントでサーバーからのデータを使用する必要があります。

SOAP Web サービスとしてアクセスできますが、REST を使用して、フレームワークを使用して ServiceStack クライアントと同じように単純化することを好みます (RestSharp は Compact Framework と互換性がないため)。

次のような簡単な方法で ServiceStack サーバーに接続できる CF3.5 と互換性のあるものを知っていますか?

var client = new JsonServiceClient("http://192.168.0.87:82");
HelloResponse response = client.Get(new Hello { Name = "World!" });

アップデート:

HTTPWebRequest で応答を取得し、.NET Compact Framework をサポートする古い JSON.Net バージョンで HelloResponse オブジェクトを逆シリアル化することができました。私が見逃しているのは、仮想の HelloReq オブジェクトをシリアル化して HttpWebRequest に渡す方法だけです。何かヒントはありますか? (以下のようにルートを手動で作成する必要はありません)

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://192.168.0.87:82/Hello/test?format=json");
req.Method = "GET";           
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream respStream = resp.GetResponseStream();
string resps;

using (var reader = new StreamReader(respStream, Encoding.UTF8))
{
      resps = reader.ReadToEnd();
}
respStream.Close();

JsonTextReader jreader = new JsonTextReader(new StringReader(resps));

JsonSerializer serializer = new JsonSerializer();
HelloResponse p = serializer.Deserialize<HelloResponse>(jreader);

ありがとう!

4

1 に答える 1

0

リクエストが作成されました:

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://192.168.0.87:82/json/syncreply/Hello");
            req.ContentType = "text/json";
            req.Method = "POST";
            req.ContentLength = json.Length;

            using (var streamWriter = new StreamWriter(req.GetRequestStream()))
            {
                streamWriter.Write(json);
                streamWriter.Flush();
                streamWriter.Close();
            }
于 2012-12-01T15:05:17.007 に答える