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 的长度结束,一切又恢复正常了。
我有一个接收字符串的简单 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 的长度结束,一切又恢复正常了。