我的路线看起来像:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}/{uri}",
defaults: new { id = RouteParameter.Optional, uri = RouterParameter.Optional }
);
我有一个 Base64 编码的 uri 来代替 {uri} 参数。它没有非法字符(我已正确格式化并检查以确保)。但是,它的长度约为 300-400 个字符。
当我使用 long base64 参数向该地址发送 DELETE 请求时,我收到 400 BAD STATUS, INVALID URL 响应。缩短参数时,它起作用。我怀疑存在最大路径问题?
使用查询字符串代替路径参数是可行的,但我宁愿继续使用 RESTful 方法。我可以在我的 Web API 项目上更改配置设置以允许更长的基于路径的参数吗?
这有效:
http://localhost:99999/api/reg/10?uri=<long_base64_parameter>
这不起作用:
http://localhost:99999/api/reg/10/<long_base64_parameter>