【问题标题】:Custom HTTP Handler for REST RequestsREST 请求的自定义 HTTP 处理程序
【发布时间】:2012-04-30 11:28:01
【问题描述】:

我确信这是一个简单的解决方法 - 但经过数小时的谷歌搜索后,我无法找到答案。

我要做的是设置一个自定义处理程序,该处理程序将处理路径为 {domain}/services/* 的所有请求。

我有一个包含大量 javascript 和 ajax 调用的 Web 应用程序。我想实现一个处理程序,它将促进对其他服务(谷歌地图、一些自定义服务等)的所有请求。这将允许我利用客户端上的缓存和简单配置。

我的问题是处理程序的实现。我无法让 IIS Express(或内置的 VS 2010 Web 服务器)来捕获带有上述路径信息的任何请求。

我希望 JavaScript 客户端能够进行 RESTful 调用,让处理程序接收该调用并相应地进行处理。

这是我到目前为止所做的:

  1. 实现了一个继承 IHTTPHandler 接口的类(该类在 App_Code 文件夹中)。
  2. 已配置 Web.Config: system.webServer 模块 runAllManagedModulesForAllRequests="true" 处理程序 添加 name="ServiceHandler" 动词="" path="/services/*" type="MyWeb.UI.ServiceHandler, MyWeb.UI" resourceType ="Unspecified" 处理程序 system.webServer

我很感激这里的一些帮助。这让我发疯了。

【问题讨论】:

    标签: asp.net rest httphandler


    【解决方案1】:

    您可能想查看.Net Web API

    【讨论】:

      【解决方案2】:

      在 .Net 中,微软在 WCF 应用程序中提供了其余架构构建 API,通过 webHttpBinding 协议管理请求和响应。

      实现一个简单的自定义 HttpHandler 可能比调用与 ASP.NET Web 服务相关的所有管道和开销更有益/更有效。使用自定义 HttpHandler,您可以只发送您需要的参数并准确返回您希望看到的结果,而无需使用 XML Web 服务时创建的任何支持 SOAP xml。

      Bellow 是自定义处理程序(我们也可以使用 .ashx 文件,但不支持自定义处理程序提供的虚拟路径或虚拟扩展名)

      <system.web>
       <httpHandlers>
         <add verb="*" path="Services.fck" type="restHandler"/>
      </httpHandlers> 
      

      .....

      if (Request.RequestType == "GET")
      {
      
        //RawUrl=http://localhost/Services.fck/?Vivek/Gupta
        string RawUrl = Request.RawUrl;
        string splitter = "/?";
        string SubRawUrl = RawUrl.Substring(RawUrl.IndexOf(splitter) + splitter.Length);
      
        string[] Parameters = SubRawUrl.Split('/');
        if (Parameters.Length >= 2)
        {
         string name = Parameters[0];
         string surname = Parameters[1];
         string res = string.Format("Welcome {0} {1}", name, surname);
         JavaScriptSerializer jc = new JavaScriptSerializer();
         StringBuilder sb=new StringBuilder ();
         jc.Serialize(res, sb);
         Response.Write(sb.ToString());
         Response.ContentType = "application/json";
        }
      }
      

      关于如何使用 http 处理程序创建基于 json、xml、纯文本(GET、Post)的 rest 服务以及如何从 jquery、asp.net、javascript 调用它们见下文:

      Creating Rest Services in asp.net with httphandler

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-10-11
        • 1970-01-01
        • 1970-01-01
        • 2012-10-25
        • 1970-01-01
        • 2017-12-29
        • 2012-04-08
        相关资源
        最近更新 更多