我基本上需要的是一个小型控制台应用程序,它可以侦听端口80,并能够放置JSON个对象。
List<T>
(或数组)并将其转换为.NET类List<T>
发送到客户端性能不是问题,因为我预计每小时会有20到30个请求。 我不希望IIS或Cassini Web server作为客户端的要求。只有我的控制台应用程序和依赖项。
我已经尝试了servicestack.net看起来非常有前途,并且有一个控制台主机的示例。但是我没有设法从控制台主机(只有XML)中获取JSON。
欢迎任何有关如何使用servicestack.net或替代品的想法。
顺便说一句:客户端将是Android手机,因为我目前的方法IIS + WDSL + kSOAP 2(在手机上)造成的麻烦比它解决的更多,我真的想尝试一下轻量级独立JSON解决方案。
答案 0 :(得分:3)
也许我错了,但我想你可以使用托管在控制台应用程序中的WCF。
答案 1 :(得分:3)
Kayak项目几乎完全符合您的要求。它非常轻巧,非常强大。查看一些示例(直接从项目页面获取):
public class PostAPI
{
[Path("/widgets")]
public Widget[] GetWidgets()
{
return Widget.GetAll();
}
[Verb("POST")]
[Path("/widgets")]
public void CreateWidget([RequestBody] Widget w)
{
w.Created = DateTime.UtcNow;
w.Create();
}
}
public class Widget
{
public string Author;
public string Text;
public string Created;
// (Methods would be here...)
}
它可以在JSON对象和CLR对象之间自动序列化和反序列化,并接受路由以及POSTs和GETs。最后,它包含一个内置服务器,您可以轻松地将其投入控制台应用程序。
答案 2 :(得分:1)
您可以在应用程序中使用HttpListener来处理HTTP次请求。您必须自己处理JSON序列化,但这可能不是问题吗?
根据您使用的框架版本,您可以使用内置的JSON序列化支持,也可以使用Json.NET库来执行此操作。在任何一种情况下,都应该很容易检测到请求并返回JSON响应。