【问题标题】:ServiceStack on server and .NET Compact Framework client服务器上的 ServiceStack 和 .NET Compact Framework 客户端
【发布时间】:2012-11-16 10:26:12
【问题描述】:

我使用 ServiceStack 创建了我的服务器和客户端(MonoDroid 和 Windows),一切运行良好,但现在我需要使用带有 Compact Framework F3.5 的移动客户端使用来自服务器的数据。

我可以将它作为 SOAP Web 服务访问,但我更喜欢通过 REST,并使用框架来简化事情,就像 ServiceStack 客户端(因为 RestSharp 与 Compact Framework 不兼容)。

你知道与 CF3.5 兼容的东西,它可以让我以简单的方式连接到 ServiceStack 服务器

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);

谢谢!

【问题讨论】:

    标签: rest compact-framework servicestack


    【解决方案1】:

    已创建请求:

    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();
                }
    

    【讨论】:

      最近更新 更多