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 次 |
最近记录: |