【发布时间】:2023-03-07 11:06:01
【问题描述】:
我有一个 .Net core 2.2 WebAPI,它可以与“普通”样式的 URL 完美配合,例如/api/controller/action/param 等。我有一个 3rd 方服务,它使用 URL 编码路径对此 API 进行 POST,并且 Asp.Net 路由无法正确路由此请求。
控制器位于:.../api/file/uploadFile/{filename}
来自第 3 方的 POST 是: “.../api%2Ffile%2FuploadFile%2FMaintenanceReport_2019_08_05_17_11_10.html.gz”。
替换路径中的 %2F 似乎可以按预期工作: “.../api/file/uploadFile/MaintenanceReport_2019_08_05_17_11_10.html.gz”
文件名为:“MaintenanceReport_2019_08_05_17_11_10.html.gz”
使用 %2F 而不是“/”来放置路由属性是可行的,但看起来很混乱。
传递到路径中的文件名也没有正确解析为参数。我怀疑这是由于包含了文件扩展名。
我在网上搜索过,并没有发现任何相关的东西向我跳出来。有什么建议/想法吗?
[Route("api/[controller]/[action]")]
[Route("api%2F[controller]%2F[action]")]
public class FileController : Controller
{
...
}
我原以为 .Net 核心路由引擎会检测路径
【问题讨论】:
标签: asp.net asp.net-core asp.net-web-api