【发布时间】:2021-01-27 05:12:10
【问题描述】:
我有一个端点,无论 url 是什么,我都想捕获所有 POST。
目前我有:
public class ProxyController : ApiController
{
[Route("{*url}")]
[HttpPost]
public async Task<HttpResponseMessage> Post()
{
.............
这对于像“http://localhost:64578/SomeRoute”这样的网址非常有用
端点被击中。
但只要我添加一个扩展,例如。
'http://localhost:64578/SomeRoute.svc'
端点没有被命中。
但它会点击“http://localhost:64578/SomeRoute.svc/”
但我真的需要前者。
我的路线设置如下:
public static void Register(HttpConfiguration config)
{
var container = StructureMapIoC.GetStructureMapContainer();
ConfigStructureMapContainer(config, container);
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
是否有人能够解释原因并建议如何解决?
【问题讨论】:
-
您真的需要 POST 数据吗?或者这基本上需要一个包罗万象的 404 处理程序?
标签: c# api asp.net-web-api asp.net-web-api-routing webapi