gpt4 book ai didi

asp.net-mvc - ASPNET 5 : How to receive request parameter as raw content no matter what the Content-Type header is set to?

转载 作者:行者123 更新时间:2023-12-05 01:24:31 25 4
gpt4 key购买 nike

我正在构建一个 API,客户端可以在其中向我发送一团数据,然后我将其保存在某个地方以供日后检索。我不在乎内容类型是什么。我只想每次都获取原始数据,无论他们将 Content-Type 设置为什么。我知道这可以在旧版本的 ASPNET 中通过访问 Request 对象来实现,但这在 ASPNET 5 中似乎不可能,我也不想这样做,因为它会使单元测试变得不可能(请求不是依赖注入(inject))。

我看到有人提到了 IInputFormatter 和 IOutputFormatter 接口(interface),但它们似乎与特定的 Content-Type 相关联。我想我正在寻找更像 [FromBody] 属性的东西,但这给了我原始输出。像[RawBody]之类的东西。我进行了大量搜索,但似乎找不到任何简单的解决方案。

最佳答案

您可以创建 CustomAttribute 并使用 StreamReader 读取 Request.InputStream 将流数据保存在任何您想要的位置,然后将 InputStream 位置重置为 0httpContext.Request.InputStream.Position = 0;

我在自定义 AuthorizeAttribute 中使用了它,但您可以使用自定义 ActionFilter 并使用 filterContext 中的 Request可以在 google 上搜索“MVC c# 中的自定义属性”,您也可以在 ActionResult 中执行此操作。

关于asp.net-mvc - ASPNET 5 : How to receive request parameter as raw content no matter what the Content-Type header is set to?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34865416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com