博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET 5 WebApi 返回 HttpResponseMessage
阅读量:7040 次
发布时间:2019-06-28

本文共 1381 字,大约阅读时间需要 4 分钟。

首先,ASP.NET 5 没有了 MVC 和 WebApi 的区分,都属于 ASP.NET 5,从 Controller 的继承就可以看出,原来 ASP.NET WebApi 2 ValuesController : ApiController 改成了 ValuesController : Controller,并且返回 HttpResponseMessage 也有些改变。

ASP.NET WebApi 2 中的示例代码:

[Route("values/{id}")]public async Task
Get(string id){ var response = Request.CreateResponse(HttpStatusCode.OK); var accept = Request.Headers.Accept; var result = await _valuesService.Get(id); if (accept.Any(x => x.MediaType == "text/html")) { response.Content = new StringContent(result, Encoding.UTF8, "text/html"); } else { response.Content = new StringContent(result, Encoding.UTF8, "text/plain"); } return response;}

ASP.NET 5 WebApi 中的示例代码:

[Route("values/{id}")]public async Task Get(string id){    var accept = Request.GetTypedHeaders().Accept;    var result = await _valuesService.Get(id);    var data = Encoding.UTF8.GetBytes(result);    if (accept.Any(x => x.MediaType == "text/html"))    {        Response.ContentType = "text/html";    }    else    {        Response.ContentType = "text/plain";    }    await Response.Body.WriteAsync(data, 0, data.Length);}

可以看到,改变还是很大的,主要是两方面:

  • 没有了 Request.CreateResponse,获取 Accept 需要通过 Request.GetTypedHeaders()
  • 没有返回值,而是直接通过数据流的方式写入到 Response.Body 中。

本文转自田园里的蟋蟀博客园博客,原文链接:http://www.cnblogs.com/xishuai/p/aspnet5-return-HttpResponseMessage.html,如需转载请自行联系原作者

你可能感兴趣的文章
Springboot后台接收前端Date类型
查看>>
仿淘宝选择规格动画效果
查看>>
百度经典算法集合(转)
查看>>
如何合理用网络管理软件灵活管理复杂庞大的网络
查看>>
笨方法学python VI
查看>>
C?Go?Cgo![翻译]
查看>>
jenkins war包方式,修改JENKINS_HOME
查看>>
eclipse mqtt paho client 处理shared topic, 共享主题问题
查看>>
eclipse 初始化
查看>>
Python程序结构与控制流
查看>>
详述Google针对Android平板App发布的十大开发准则
查看>>
CentOS 7安装python3笔记
查看>>
水壶问题(向水壶中倒z升水) Water and Jug Problem
查看>>
第十章 Scala 容器基础(五):确定集合类型(范型)
查看>>
mysql 多表联合更新
查看>>
树莓派中文支持
查看>>
C# 如何去掉DataTable中的重复行
查看>>
UserInterfaceState.xcuserstate unlocked
查看>>
pom.xml报错的解决办法
查看>>
CMD获取当前目录的绝对路径
查看>>