.Net Core下WebApi的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 的核心類庫
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章