CORE return HttpResponseMessage

在.net framework下我们编写webapi时返回一般会用到HttpResponseMessage类型,如果返回值什么内容调用此api就能返回什么值了。但是在.net core下我们用HttpResponseMessage来当做返回值得话得到的结果可能就不是你想要的了,可能会出现一堆看起来没什么用的json返回值,如下所示就是我调用后的返回值

{
"version": {
"major": 1,
"minor": 1,
"build": -1,
"revision": -1,
"majorRevision": -1,
"minorRevision": -1
},
"content": {
"headers": [
{
"key": "Content-Type",
"value": [
"text/plain; charset=utf-8"
]
}
]
},
"statusCode": 200,
"reasonPhrase": "OK",
"headers": [],
"requestMessage": null,
"isSuccessStatusCode": true
}


其实我们可以安装.net core的webapi兼容包来实现的,通过nuget安装

Microsoft.AspNetCore.Mvc.WebApiCompatShim

然后在Startup中的ConfigureServices方法里在AddMvc()后增加AddWebApiConventions()就行了

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc().AddWebApiConventions();
}


这时你再重新调用下webapi返回的值就是你程序里的返回值了。

附上.net core的相关组件清单,以便有用时查询

相关组件
ASP.NET Core MVC 包含了下列组件,基于 .NET Core 的精神,只有需要用到的才需要加入参考 (于 project.json),因此开发者可以自由选择,而不必把所有的组件都加进来。

  • Microsoft.AspNetCore.Mvc ASP.NET Core MVC 引用套件
  • Microsoft.AspNetCore.Mvc.Abstractions ASP.NET Core MVC 功能的抽象层
  • Microsoft.AspNetCore.Mvc.ApiExplorer ASP.NET Core MVC 的 API 文件支持
  • Microsoft.AspNetCore.Mvc.Core ASP.NET Core MVC 核心组件
  • Microsoft.AspNetCore.Mvc.Cors 提供 Web API 所需要的 CORS 能力
  • Microsoft.AspNetCore.Mvc.DataAnnotations MVC 所需的数据注解 (Data Annotation) 功能
  • Microsoft.AspNetCore.Mvc.Formatters.Json MVC/Web API 所需的 JSON 序列化器
  • Microsoft.AspNetCore.Mvc.Formatters.Xml MVC/Web API 所需的 XML 序列化器
  • Microsoft.AspNetCore.Mvc.Localization MVC 应用程序本地化支持
  • Microsoft.AspNetCore.Mvc.Razor MVC Razor 的核心类库 (若要在 MVC 中使用 Razor 就必须参考此组件)
  • Microsoft.AspNetCore.Mvc.Razor.Host MVC Razor 的运行时引擎
  • Microsoft.AspNetCore.Mvc.TagHelpers MVC Tag Helper 的核心类库
  • Microsoft.AspNetCore.Mvc.ViewFeatures MVC View 功能的类库 (Controller 类的操作在此)
  • Microsoft.AspNetCore.Mvc.WebApiCompatShim Web API 兼容套件
  • Microsoft.AspNetCore.Razor Razor 的核心类库

————————————————

原文链接:https://blog.csdn.net/sammy520/java/article/details/104581376

Leave a Comment