我有一个 .Net core 2.2 的 WebAPI,使用“正常”样式的URL(如 /api/controller/action/param 等)可以完美地工作。我有一个第三方服务,它会以 URL 编码路径的形式 POST 到这个 API,但 Asp.Net 路由不能正确路由此请求。
控制器位于:.../api/file/uploadFile/{filename}
第三方 POST 的 URL 为:".../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 属性似乎可以工作,但看起来非常混乱。
传递给路径的文件名也无法正确解析为参数。我怀疑这是由于包括文件扩展名。
我已经搜索了网络,没有找到任何相关的信息。有什么建议/想法吗?
我原本以为 .Net Core 路由引擎会检测路径。
控制器位于:.../api/file/uploadFile/{filename}
第三方 POST 的 URL 为:".../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 属性似乎可以工作,但看起来非常混乱。
传递给路径的文件名也无法正确解析为参数。我怀疑这是由于包括文件扩展名。
我已经搜索了网络,没有找到任何相关的信息。有什么建议/想法吗?
[Route("api/[controller]/[action]")]
[Route("api%2F[controller]%2F[action]")]
public class FileController : Controller
{
...
}
我原本以为 .Net Core 路由引擎会检测路径。