asp.net web api 向客户端返回错误信息

1使用Http状态码

ASP.NET Web Api框架提供了Http状态码的值,如下图所示。

虽然有这些预定义的状态码,但在实际项目中使用自定状态码结合预定义状态码更有优势。

通过在适当的位置抛出异常

  throw new HttpResponseException

通过构造函数设置响应或Http状态,来实现向客户端返回相应的执行状态。

相应地HttpResponseMessage如下图所示:

可通过构造函数设置状态,通过HttpResponseMessage.ReasonPhrase设置原因短语,但只支持英文字符,中文或其他语言文字显示乱码。

自定义状态码的规则为:

1)必须是整数

2)必须小于999

3)600以内的码最好别用

此外消息短语不应很长,如果想更加详细的表达消息,那么也可以使用代码代替消息,但要注意代码不能是三位数字,否则客户端无法正常获得消息内容。

2 返回响应中包含错误码和消息短语

使用Web api一般返回序列化后的字符串,将错误码与消息短语也包括在序列化字符串内。但对于使用Odata协议来说,无法这样实现。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT技术精选文摘

从Java视角理解系统结构(二)CPU缓存

众所周知, CPU是计算机的大脑, 它负责执行程序的指令; 内存负责存数据, 包括程序自身数据. 同样大家都知道, 内存比CPU慢很多. 其实在30年前, CP...

2189
来自专栏程序员叨叨叨

【转】使用 Spring HATEOAS 开发 REST 服务原文

绝大多数开发人员对于 REST 这个词都并不陌生。自从 2000 年 Roy Fielding 在其博士论文中创造出来这个词之后,REST 架构风格就很快地流行...

801
来自专栏Golang语言社区

Goroutine(协程)为何能处理大并发?

简单来说:协程十分轻量,可以在一个进程中执行有数以十万计的协程,依旧保持高性能。 进程、线程、协程的关系和区别: 进程拥有自己独立的堆和栈,既不共享堆,亦不共享...

2695
来自专栏Linyb极客之路

分布式系统唯一ID生成方案汇总

系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会...

892
来自专栏racaljk

Boost Coroutine2 - stackful coroutine简介

协程可以很轻量的在子例程中进行切换,它由程序员进行子例程的调度(即切换)而不像线程那样需要内核参与,同时也省去了内核线程切换的开销,因为一个协程切换保留的就是函...

1153
来自专栏自动化测试实战

接口测试基础——第8篇 requests模块

3136
来自专栏用户画像

2.5.1 进程与程序的区别和联系

(1)进程是程序及其数据在计算机上的一次运行活动,是一个动态的概念。进程的运行实体是程序,离开程序的进程没有存在的意义。从静态角度看,进程是由程序,数据和进程控...

652
来自专栏企鹅号快讯

详细介绍Spring 5 中的新特性与增强

Spring5 是一个重要的版本,距离SpringFramework4差不多四年。在此期间,大多数增强都是在 SpringBoot 项目中完成的。在本文中,我们...

2159
来自专栏瞎说开发那些事

[Java并发系列] Java并发机制的底层实现

1365
来自专栏瓜大三哥

UVM(九)之sequence机制续2

UVM(九)之sequence机制续2 1. 用事件做sequence之间的同步 到目前为止,sequence机制就是一个sequence启动之后对应一个seq...

2068

扫码关注云+社区