【问题标题】:ñ character in ASP.NET Core 3.1 http headerñ ASP.NET Core 3.1 http 标头中的字符
【发布时间】:2021-01-17 23:45:14
【问题描述】:

我有一个 ASP.NET Core 3.1 Web 服务器,我正在接收这样的发布请求:

[HttpPost("/api/loginweb")]
        public IActionResult loginWeb([FromHeader(Name = "usuario")] String usuario, [FromHeader(Name = "pass")] String pass)
        {

我遇到的问题是在标题上发送 ñ 字符:

但是,当我收到它时,我得到:

【问题讨论】:

标签: asp.net asp.net-mvc asp.net-core asp.net-web-api http-headers


【解决方案1】:

你可以在postman中right-clickbarñfoo,选择EncodeURlComponent选项,然后当收到usuario的数据时,使用HttpUtility.UrlDecode()方法获取包含特殊字符的字符串。

 [HttpPost("/api/loginweb")]
        public IActionResult loginWeb([FromHeader(Name = "usuario")] string usuario, [FromHeader(Name = "pass")] string pass)
        {
            usuario = HttpUtility.UrlDecode(usuario);
            return Ok();
        }

这是测试的过程:

更新

我找到了一个线程来解释这种现象的原因。 你可以去看看this

【讨论】:

  • 嗯,是的,我最终在客户端对其进行了编码,因为在我的情况下它取决于我,但我不想这样做,我只是想让 API 能够理解编码,就像在任何其他语言和框架中一样......我认为你的回答就像一个解决方法。也许这是不可能的,你的方法是最好的......
  • @CarlosLópezMarí,对不起,这是我目前找到的解决方案。如果允许,将其放在正文而不是标题中并传递它不会导致此问题。
  • @CarlosLópezMarí ,我已经更新了我的回复,您可以参考一下,如果对您有帮助,请采纳。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-11
  • 1970-01-01
  • 2021-07-24
  • 1970-01-01
相关资源
最近更新 更多