繁体   English   中英

如何在 c# 中将编码的 url 作为路径参数传递

[英]How can I pass an encoded url as a path parameter in c#

我正在创建一个新的 RESTful API 它有一个端点

GET v1/my-resource/{encoded-url}

当我尝试向此端点发送消息时,我收到 404

GET v1/my-resource/%2Fshop%2Fgender-women-category-bags

当我尝试发送my-url时,它返回 200。

GET v1/my-resource/my-url

这是我的方法:

[ApiController]
[Route("")]
public class GetController : ControllerBase
{
    [HttpGet("v1/my-resource/{url}")]
    public async Task<IActionResult> GetResource(
        [FromRoute, Required] string url)
    {
        return Ok();
    }
}

谁能帮我理解为什么我不能将%2Fshop%2Fgender-women-category-bags作为编码的 url 传递?

您可以尝试对 base64 进行编码,以便生成可靠的序列并且不会混淆 ApiController。 顺便提一句。 我已经在 mvc controller 中尝试了您的解决方案,它可以工作,但在 api controller 中没有。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM