ASP.NET Core Web API处理HttpResponseMessage类型返回值的问题
2024-09-20 18:16:40
在将我们的 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();
}
最新文章
- 转:Eclipse Search Tips
- iOS7——UIControlEventTouchDown延迟响应问题
- ModernUI教程:目录 (完结)
- 用Javascript编写Chrome浏览器插件
- Objective-C:runtime
- JavaScript 循环语句
- Navicat Premium 12.0.29 / 12.1.5.0安装与激活
- 音乐app各部分笔记(二)
- CSS----注释的坑
- Sqoop-1.4.7-部署与常见案例
- js 获取DOM的style属性
- lintcode 刷题 by python 总结(1)
- LFD,非官方的Windows二进制文件的Python扩展包
- [C#] Delegate, Multicase delegate, Event
- HDU 5265 pog loves szh II 二分
- Linux用户密码期限修改
- Php处理时间的函数
- C++之内部类与外部类(嵌套类)及友元
- Flask实战第63天:评论布局和功能实现
- asp.net core mcroservices 架构之 分布式日志(二)之自定义日志开发
热门文章
- PC端和移动端在前端开发上的一些区别,前端里移动端到底比pc端多哪些知识
- linux达人养成计划学习笔记(八)—— shell基础
- 以太坊(Ethereum)智能合约NodeJS/Web3 使用
- nginx(一)下载和启动
- SNF开发平台WinForm-Grid表格控件大全
- Atitit &#160;技术经理职责与流程表总结
- 系统用户在Samba服务器中起一个别名
- 【Python】Python的安装与个人使用记录
- 11款最轻量级的CSS框架
- 【Java】移动JDK路径后,修改环境变量不生效 Error: could not open `C:\Program Files\Java\jre1.8.0_131\lib\amd64\jvm.cfg&#39;