AspNetCore - QueryString BadRequest 上的数组

AspNetCore - Array on QueryString BadRequest

我有一个接收字符串的简单 httpGet 端点

[Authorize]
    [HttpGet("filter/{filters}"), Route("filter")]
    public virtual IActionResult Filter(string filters)
    {
        try
        {
            return Ok(Service.GetByFilter(JsonConvert.DeserializeObject<FilterHelper>(filters)));
        }
        catch (Exception ex)
        {
            Logger.LogWarning(LoggingEvents.GET_ENTITY_BY_FILTER, ex, Localizer["EntityGetFilterFailed"]);
            return Ok(new RequestResult(StatusResult.Danger, new Message(string.Format(Localizer["UnexpectedError"], LoggingEvents.GET_ENTITY_BY_FILTER))));
        }
    }

昨天,它工作正常,今天我的 PC 启动失败并恢复,之后我的 API 给我错误的请求结果。

如果我称之为url

http://localhost:23272/api/users/filter?filters={"Page":1,"PageSize":5}

请求工作正常,但如果我尝试调用此 url(更早的工作)

http://localhost:23272/api/users/filter?filters={"Page":1,"PageSize":5, "FilterItens": []}

API 返回 BadRequest 状态 (400)。已经尝试用一些 itens 传递数组,badrequest 也是。

关于如何处理这个问题有什么想法吗?

详细信息:如果我从 Postman 调用,它工作正常。

http://localhost:23272/api/users/filter?filters={"Page":1,"PageSize":5, "FilterItens": []}

我的模型

public class FilterHelper
{
    #region Properties
    public int Page { get; set; }
    public int PageSize { get; set; }
    public ICollection<FilterItem> FilterItens { get; set; }
    public string[] Includes { get; set; }
    #endregion
}

根本问题是:

我的授权令牌对于请求来说太大了 header。

令牌长度约为 16k 并且正在打破 header。

我对令牌进行了更改,它以 800 的长度结束,一切又恢复正常了。