C# asp.net核心头缓存问题

C# asp.net核心头缓存问题,c#,asp.net-mvc,asp.net-core,.net-core,asp.net-core-2.0,C#,Asp.net Mvc,Asp.net Core,.net Core,Asp.net Core 2.0,以下是从postman到我的asp.net_core 2.0 API的请求头 内容类型:application/json 接受:应用程序/json 来自asp.net核心应用程序的响应是以字符串格式引发的异常。 但是下面的响应头已经从API发送给postman 缓存控制:没有缓存,没有存储,必须重新验证 Pragma:没有缓存 传输编码:分块 内容类型:应用程序/json;字符集=utf-8 年龄:0 服务员:红隼 因为请求主体是字符串,并且内容类型设置为application/json。客

以下是从postman到我的asp.net_core 2.0 API的请求头

  • 内容类型:application/json
  • 接受:应用程序/json
来自asp.net核心应用程序的响应是以字符串格式引发的异常。 但是下面的响应头已经从API发送给postman

缓存控制:没有缓存,没有存储,必须重新验证 Pragma:没有缓存 传输编码:分块 内容类型:应用程序/json;字符集=utf-8 年龄:0 服务员:红隼

因为请求主体是字符串,并且内容类型设置为application/json。客户端无法分析它。 我在API中间件启动类configure()方法中添加了以下代码,以禁用头缓存。但由于“Accept”头是application/json,因此响应头“content type”也被设置为application/json,而不是text/plain。 请告诉我要将响应标题内容类型更改为text/plain还需要做哪些事情

app.Use(
    next =>
    {
        return async context =>
        {
            context.Response.OnStarting(
            () =>
            {
                context.Response.Headers.Add("Cache-Control", "no-cache, no-store, 
                must-revalidate");
                context.Response.Headers.Add("Pragma", "no-cache");
                context.Response.Headers.Add("Age", "0");
                return Task.CompletedTask;
            });
            await next(context);
        };
    });

提前感谢。

如果需要特定内容,为什么不在代码中正确设置内容类型?我不知道这与缓存有什么关系。谢谢sami kuhmonen的回复。如果删除或修改“Accept”标题以包含文本/纯文本,如Accept:application/json;text/plain则响应内容类型为text/plain。是否有任何解决方案可以设置独立于请求的Accept标头的响应内容类型。请添加导致异常的控制器代码。如果需要特定的内容类型,为什么不在代码中正确设置该内容类型?我不知道这与缓存有什么关系。谢谢sami kuhmonen的回复。如果删除或修改“Accept”标题以包含文本/纯文本,如Accept:application/json;text/plain则响应内容类型为text/plain。是否有任何解决方案可以设置独立于请求的Accept标头的响应内容类型。请添加导致异常的控制器代码。