Uma*_*air 3 c# http asp.net-core
我在 httpDELETE请求中使用正文。我知道目前在删除中有一个正文是非标准的(但允许)。
使用HttpClient不允许删除请求的正文时会出现问题。我知道我可以只使用SendAsync,但我宁愿让我的 API 更灵活。
我希望这个机构是可选的。从某种意义上说,如果 asp.net core 无法确定内容类型,则忽略它。目前,asp.net 核心返回 415,即使没有发送正文(通过HttpClient- 所以内容长度应该为 0)。
可以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)
{
}
}
Run Code Online (Sandbox Code Playgroud)
并将其添加到您的方法中:
[AddMissingContentType]
[HttpDelete]
public async Task<IActionResult> Delete([FromBody]RequestData request)
{
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4751 次 |
| 最近记录: |