我有一个非常简单的ASP.NET Core API。我正在将标头发送到此服务,并且效果很好。
但是问题是,当我在请求标头中发送诸如“á”之类的字符时,请求失败,并显示400: Bad request
。
我知道这对客户端来说不是问题,我在Java API上测试了相同的代码,并且可以正常工作。我也用邮递员复制了同样的问题。
如何告诉服务器在请求标头中接受UTF-8?
[HttpPut("/api/Test")]
public IActionResult test([FromHeader(Name = "Word")] String word)
{
return Ok("I accepted your request");
}
它与3.1一起使用,所以现在我们知道这与2.1有关。
这是.net core 2.1的局限性,并且已通过.net core 2.2修复。
此github问题Configure header parsing to allow non-compliant headers中有关于此行为的更多信息,>
我可以看到以下解决方案来解决此问题: