我在 http 中使用 bodyDELETE
要求。我知道目前删除主体是非标准的(但是允许的)。
使用时出现问题HttpClient
它不允许删除请求的正文。我知道我可以使用SendAsync
,但我宁愿让我的 API 更加灵活。
我希望这个机构是可选的。从某种意义上说,如果 ASP.NET Core 无法确定内容类型,则忽略它。目前,asp.net core 返回 415,即使没有发送正文(通过HttpClient
- 所以内容长度应该是0)。
Can FromBody
可以这样扩展吗?或者我需要在管道中添加一些自定义逻辑吗?
您可以创建在检查内容类型的模型绑定之前执行的 ResourceFilter:
public class AddMissingContentType : Attribute, IResourceFilter
{
public void OnResourceExecuting(ResourceExecutingContext context)
{
context.HttpContext.Request.Headers["Content-Type"] = "application/json";
}
public void OnResourceExecuted(ResourceExecutedContext context)
{
}
}
并将其添加到您的方法中:
[AddMissingContentType]
[HttpDelete]
public async Task<IActionResult> Delete([FromBody]RequestData request)
{
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)