内容简介:ASP.NET Core Web API处理HttpResponseMessage类型返回值的问题
在将我们的 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();
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- c++ 为什么在返回从函数的返回类型派生的类型的本地对象时,没有选择move构造函数?
- 父类返回子类类型的函数写法
- RPC返回Byte类型的坑
- Unchecked Conversion 导致的 Java 方法返回类型变更
- Go语言的断言返回值和类型转换的区别
- SwiftUI 和 Swift 5.1 新特性之:不透明返回类型
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入浅出 HTTPS:从原理到实战
虞卫东 / 电子工业出版社 / 2018-6 / 89
本书是一本专业的HTTPS书籍,全面讲解了HTTPS领域的相关知识,内容包括密码学、OpenSSL命令行、证书、TLS协议、HTTPS网站性能优化、HTTPS网站优秀实践、大型网站HTTPS架构设计等。本书有几个特点:(1)内容全面而新颖,基于RFC文档、国外书籍、社区等一手资料,总结了大部分最新的HTTPS知识;(2)由浅入深,从基础到进阶全面掌握HTTPS,读者能够轻松构建一个HTTPS网站,......一起来看看 《深入浅出 HTTPS:从原理到实战》 这本书的介绍吧!