62,046
社区成员
发帖
与我相关
我的任务
分享
public class Handler1 : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
var request = context.Request;
using (var reader = new StreamReader(context.Request.InputStream))
{
var text = reader.ReadToEnd(); //断点调试这里,可以得到客户端的所有提交的 string
var obj = JObject.Parse(text); //从收到的 string 转换为 Json 格式
var commandName = (string)obj["ServiceName"];
switch (commandName)
{
case "调用功能A":
方法A(obj, context); //传入整个 obj 以及 context,后者用来 Respose。
return;
case "调用功能B":
var result = 方法B(obj["data"]);
将result进行json序列化并通过context.Response输出;
return;
default:
Type t = dictionary[(string)obj["serviceName"]); //dictonary 是初始化好的服务功能名与类型对应的字典
HMyCommand h = (HMyCommand)Activator.CreateInstence(t); //你为所有的服务都实现了一个通用的接口
h.Execute(obj["data"], context);
return;
}
}
}
这类,你可以自己取得客户端上行的 json 格式的数据,使用自定义通用的服务模式,取得结果并返回 json 格式的结果。你可以自己插入自己的中间处理环节,例如缓存等等,自由插入自己想集成的操作,不用考虑什么路由功能。