在将我们的 web api 从 .NET Framework 迁移至 .net core(asp.net core 1.1)之后,遇到一个问题。

之前返回值类型为 HttpResponseMessage 的 web api,比如:

[HttpGet]
public async Task<HttpResponseMessage> Get()
{
return await _httpClient.GetAsync($"...");
}

(注:这个 web api 的用途是直接将 HttpClient 调用后端 web api 的结果返回给调用客户端)

原本会返回 json 格式的业务数据,现在返回的却是对 HttpResponseMessage 自己的 json 序列化数据:

{
"version": {},
"content": {},
"statusCode": 200,
"reasonPhrase": "OK",
"headers": [],
"requestMessage": {
"version": {},
"content": null,
"method": { "method": "GET" },
"requestUri": "",
"headers": [],
"properties": {}
},
"isSuccessStatusCode": true
}

驴头不对马嘴。

后来在 stackoverflow 上找到了解决方法 —— ASP.NET Core HTTPRequestMessage returns strange JSON message ,用回答中的方法成功解决了这个问题。

解决方法如下:

1)在 .csproj 中添加下面的配置,为了可以安装第2步中的 nuget 包(asp.net core 2.0不需要添加这个配置)

<PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8</PackageTargetFallback>

2)安装 nuget 包 Microsoft.AspNetCore.Mvc.WebApiCompatShim

3)在 Startup -> ConfigureServices 中,在 AddMvc() 之后添加 AddWebApiConventions() 即可:

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

最新文章

  1. 转:Eclipse Search Tips
  2. iOS7——UIControlEventTouchDown延迟响应问题
  3. ModernUI教程:目录 (完结)
  4. 用Javascript编写Chrome浏览器插件
  5. Objective-C:runtime
  6. JavaScript 循环语句
  7. Navicat Premium 12.0.29 / 12.1.5.0安装与激活
  8. 音乐app各部分笔记(二)
  9. CSS----注释的坑
  10. Sqoop-1.4.7-部署与常见案例
  11. js 获取DOM的style属性
  12. lintcode 刷题 by python 总结(1)
  13. LFD,非官方的Windows二进制文件的Python扩展包
  14. [C#] Delegate, Multicase delegate, Event
  15. HDU 5265 pog loves szh II 二分
  16. Linux用户密码期限修改
  17. Php处理时间的函数
  18. C++之内部类与外部类(嵌套类)及友元
  19. Flask实战第63天:评论布局和功能实现
  20. asp.net core mcroservices 架构之 分布式日志(二)之自定义日志开发

热门文章

  1. PC端和移动端在前端开发上的一些区别,前端里移动端到底比pc端多哪些知识
  2. linux达人养成计划学习笔记(八)—— shell基础
  3. 以太坊(Ethereum)智能合约NodeJS/Web3 使用
  4. nginx(一)下载和启动
  5. SNF开发平台WinForm-Grid表格控件大全
  6. Atitit &#160;技术经理职责与流程表总结
  7. 系统用户在Samba服务器中起一个别名
  8. 【Python】Python的安装与个人使用记录
  9. 11款最轻量级的CSS框架
  10. 【Java】移动JDK路径后,修改环境变量不生效 Error: could not open `C:\Program Files\Java\jre1.8.0_131\lib\amd64\jvm.cfg&#39;