我希望我的 ASP.NET Web API 接受这个请求:
http://domain.com/proxy/service?id=12
并且仅匹配第一个 /proxy/ 部分,将其路由到此控制器操作。因此,该操作的参数将是 URL 的其余部分:“service?id=124”
public string Get(string url)
{
//Calls external resource and returns response
}
url 可以在查询字符串之后有任意数量的段(它充当调用多个远程服务器的代理),但它不会匹配。
我想要下面这样的东西,但它不起作用。只要 url 在 /proxy/ 部分之后有多个段,它就会匹配它。
config.Routes.MapHttpRoute(
name: "ApiProxy",
routeTemplate: "proxy/{resourcePath}",
defaults: new { Controller = "Proxy", Action="Get" }
);
我正在研究 MessageHandlers,但它们会因所有请求而被解雇,这似乎并不理想,我希望我可以将它与标准的 Web Api 路由联系起来。