您的位置:首页 > 博客中心 > 电脑问题 >

.Net Core WebApi控制器接收原始请求正文内容

时间:2022-03-18 10:31

后台调试,查看请求输入结果
fiddler查看请求header
fiddler查看返回结果

不支持text/plain

事情到此就变得稍微复杂了一些,因为asp.netcore只处理它认识的类型,如json和formdata。默认情况下,原始数据不能直接映射到控制器参数。这是个小坑,不知你踩到过没有?仔细想想,这是有道理的。MVC具有特定内容类型的映射,如果您传递的数据不符合这些内容类型,则无法转换数据,因此它假定没有匹配的端点可以处理请求。
那么怎么支持原始的请求映射呢?

接收文本内容
接收二进制数据

格式化程序用于CanRead()检查对内容类型的请求以支持,然后将ReadRequestBodyAsync()内容读取和反序列化为应在控制器方法的参数中返回的结果类型。

InputFormatter必须在ConfigureServices()启动代码中注册MVC :

User-Agent: Fiddler
Host: localhost:5000
Content-Length: 6
Content-Type: application/octet-stream

源代码

示例代码已上传到 

参考链接

本文包含翻译和自己实践。主要思路和代码来源于以下链接:

热门排行

今日推荐

热门手游