的第一段我想我的ASP.NET Web API來接受這個請求:網頁API路線僅匹配在URL
http://domain.com/proxy/service?id=12
,並僅在第一/代理/器官匹配,它路由到此控制器行動。因此,操作的參數將是URL的其餘部分:「服務ID = 124」
public string Get(string url)
{
//Calls external resource and returns response
}
的URL可以有任意數目的分段,查詢字符串後(其充當代理,取消幾個遠程服務器),但不匹配。
我想這樣下面的東西,但它不工作。只要url在/ proxy/part之後有多於一個段,就會與之匹配。
config.Routes.MapHttpRoute(
name: "ApiProxy",
routeTemplate: "proxy/{resourcePath}",
defaults: new { Controller = "Proxy", Action="Get" }
);
我已經尋找到MessageHandlers,但他們被解僱了所有的請求,這似乎並不理想,並希望我可以綁成標準的網絡API路線,而不是。
這幾乎可行,但它返回「service」,而不是「service?id = 12」作爲傳遞給Action方法的參數。我最終不得不在上下文中使用Request.Uri手動去除網址......不是很mvc;) – 2013-05-01 10:22:55
很酷,我確實注意到它減慢了查詢的速度。我會看看MessageHandler。謝謝。 – 2013-05-02 11:15:44