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