gpt4 book ai didi

c# - 为什么 Ok() 方法返回 text/plain 媒体类型而不是 application/json?

转载 作者:行者123 更新时间:2023-12-03 08:42:31 26 4
gpt4 key购买 nike

文档 ( https://learn.microsoft.com/en-us/aspnet/core/web-api/advanced/formatting?view=aspnetcore-3.1 ) 指出,使用 Ok() 方法返回的结果默认格式化为 json。我认为这也意味着它返回为 application/json 但使用 fiddler 我发现这对我来说并非如此。

问题是,我返回一个已经格式化为 json 的字符串。这是问题所在吗?如何让它以 application/json 媒体类型返回?

编辑:

我刚刚读到 Ok() 在提供字符串时确实返回 text/plain 而不是 application/json,这使得它无法用于返回原始 json。答案似乎是返回 Content(rawJson, "application/json")

这确实解决了我的问题,但现在我想知道是否有一种方法可以将媒体类型全局设置为始终为 json?如果没有,我想我可以创建一个基本 Controller 类,并提供处理它的方法。

最佳答案

您可以添加全局过滤器。在 Startup.cs ConfigureServices 方法中,找到 services.AddControllers(); 并添加如下内容:

services.AddControllers(config => config.Filters.Add(new ProducesAttribute("application/json")));

现在,这减少了在 Controller 级别添加它的需要。

关于c# - 为什么 Ok() 方法返回 text/plain 媒体类型而不是 application/json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62309030/

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