.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
源代码
示例代码已上传到
参考链接
本文包含翻译和自己实践。主要思路和代码来源于以下链接: