• Web api接口返回值类型详解


    Web api接口返回值类型详解

    Web api的接口返回值主要有四中类型

    1. Void无返回值
    2. IHttpActionResult
    3. HttpResponseMessage
    4. 自定义类型

    一、     Void 返回值

    方法是使用void申明的方法,在success方法里面得不到返回值,并且会返回http状态码204,告诉客户端此请求没有返回值。

    二 IHttpActionResult

    IHttpActionResult类型是WebApi里面比较重要的一种返回值类型。

    1. Json<T>(T content)

      

      在MVC中请求数据的接口返回值类型大部分使用的是JsonResult,

    在webapi中我们定义的返回值类型是IHttpActionResult类型,直接返回Json<T>(T content)

    我们将Json 转到定义看看:protected internal JsonResult<T> Json<T>(T content); 

    继续将JsonResult<T>转到定义: public class JsonResult<T>:IHttpAciontResult

    原来JsonResult<T>是实现了IHttpActionResult接口的

    实体类可以直接传递

    [HttpPost]

            public IHttpActionResult  GetStudent(List<Student> stu) {

     

     

                List<Student>  studentList = stu;

                //return stu[0].Name;

                return Json<List<Student>>(studentList);

     

            }

    匿名类型,我们很多时候返回前端的对象都没有对应的实体来对应,我们要返回就在Json<T><T content>必须要传一个对应的泛型类型。如果是匿名类型这里肯定不好传。还好有我们的object类型,可以通过dynamic

    2.  Ok()、Ok<T><T content>

    除了Json<T>(T content),在ApiController里面还有另一个比较常用的方法:Ok().

    如果返回Ok(),就表示不同客户端返回任何信息,只告诉客户端请求成功。

    除了Ok()之外,还有另一个重载Ok<T>(T Content)

    这种用法和Json<T>(T content)比较类似,如果你非要问这两者有什么区别,或者说怎么选择两者。那么我的理解是如果是返回实体或者实体集合,建议使用Json<T>(T content),如果是返回基础类型(如int、string等),使用Ok<T>(T content)。

    3.NotFound()

    当需要向客户端返回找不到记录时,有时需要NotFound()方法

    NotFound()方法会返回一个404的错误到客户端。

    4、其他

    Content<T>(HttpStatusCode statusCode, T value)

    向客户端返回值和http状态码。

    BadRequest()

    向客户端返回400的http错误。

    Redirect(string location)

    将请求重定向到其他地方。

    三、HttpResponseMessage

      在上文自定义IHttpActionResult返回类型的时候,提到过HttpResponseMessage这个对象。它表示向客户端返回一个http响应的消息对象(包含http状态码和需要返回客户端消息)。独特的使用场景:需要向客户端返回HttpResponse时就要用到这个对象。已导出为例子,将导出的excel文件输出到客户端浏览器,webapi的服务端需要向web的客户端输出文件流,这个时候一般的IhttpActionResult对象不方便解决这个问题,于是HttpReponseMessage派上了用场。

  • 相关阅读:
    C#动态方法调用
    递归查询SQL语句
    Jquery获取下拉选择节点名称值赋给textbox文本框 获取 父节点的栏目名称编号
    C# 获取指定目录下所有文件信息
    引用借以记录借鉴 实现记住密码和自动登录功能
    摘用的一个实现在线发送短信接口功能
    Winform文件夹图片批量压缩整理修改
    安装包部署项目简述
    一道不错的考试题
    利用ItextSharp 生成PDF文档改进版
  • 原文地址:https://www.cnblogs.com/Vinkong/p/14022869.html
Copyright © 2020-2023  润新知