我有一个简单的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给了我错误的请求结果。
如果我打电话给这个网址
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也是。
关于如何处理它的任何想法?
细节:如果我从邮递员那里打电话,它的工作正常。
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
}
答案 0 :(得分:0)
根本问题是:
我的授权令牌对于请求标头来说太大了。
令牌长度约为16k,并且正在破坏标题。
我对令牌进行了更改,它完成了800长度,一切都再次工作。