Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net REST请求的自定义HTTP处理程序_Asp.net_Rest_Httphandler - Fatal编程技术网

Asp.net REST请求的自定义HTTP处理程序

Asp.net REST请求的自定义HTTP处理程序,asp.net,rest,httphandler,Asp.net,Rest,Httphandler,我相信这是一个很容易解决的问题——但在谷歌搜索了几个小时后,我一直没有找到答案 我试图做的是设置一个自定义处理程序,它将处理路径为{domain}/services/*的所有请求 我有一个web应用程序,它有很多javascript和ajax调用。我想实现一个处理程序,它将促进对其他服务(谷歌地图、一些定制服务等)的所有请求。。这将允许我利用客户端上的缓存和简单配置 我的问题是处理程序的实现。我无法获得IIS Express或内置VS 2010 web服务器来捕获具有上述路径信息的任何请求 我希

我相信这是一个很容易解决的问题——但在谷歌搜索了几个小时后,我一直没有找到答案

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

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

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

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

以下是我迄今为止所做的工作:

实现了一个继承IHTTPHandler接口的类。该类位于App_Code文件夹中。 已配置Web.Config: system.webServer 模块runAllManagedModulesForAllRequests=true 处理者 add name=SeviceHandler verb=path=/services/*type=MyWeb.UI.ServiceHandler,MyWeb.UI resourceType=Unspecified 处理者 system.webServer
我非常感谢你的帮助。这让我快发疯了

您可能需要研究.Net中的.Net Microsoft提供的rest体系结构构建api,该api在WCF应用程序中通过webHttpBinding协议管理请求和响应

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

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

<system.web>
 <httpHandlers>
   <add verb="*" path="Services.fck" type="restHandler"/>
</httpHandlers> 
有关如何使用http处理程序创建json、xml、纯文本GET、基于Post的rest服务,以及如何从jquery、asp.net、javascript调用这些服务,请参见以下内容:

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";
  }
}