c# webapi返回html,c#-从Web API 2端点返回自定义HTTP状态代码
c#-从Web API 2端点返回自定义HTTP状态代码
我正在使用WebAPI 2中的服务,并且端点当前返回IHttpActionResult。我想返回状态码BadResult(message),但是由于它不在422枚举中,所以我不知所措 发送,因为所有构造函数都需要一个HttpStatusCode参数
就目前情况而言,我将返回BadResult(message),但是返回422 +消息对我的客户来说更具描述性和实用性。 有任何想法吗?
5个解决方案
78 votes
根据C#规范:
枚举类型可以采用的一组值不受其枚举成员的限制。 特别是,枚举的基础类型的任何值都可以转换为枚举类型,并且是该枚举类型的不同有效值
因此,您可以将状态代码422强制转换为HttpStatusCode。
控制器示例:
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace CompanyName.Controllers.Api
{
[RoutePrefix("services/noop")]
[AllowAnonymous]
public class NoOpController : ApiController
{
[Route]
[HttpGet]
public IHttpActionResult GetNoop()
{
return new System.Web.Http.Results.ResponseMessageResult(
Request.CreateErrorResponse(
(HttpStatusCode)422,
new HttpError("Something goes wrong")
)
);
}
}
}
lilo.jacob answered 2020-02-29T15:05:06Z
23 votes
return Content((HttpStatusCode) 422, whatEver);
功劳是:对于非OK响应,返回带有IHttpActionResult的内容
并且您的代码必须为<= 999
请忽略100到200之间的代码。
peyman answered 2020-02-29T15:05:34Z
3 votes
我用这种方式简单而优雅。
public ActionResult Validate(User user)
{
return new HttpStatusCodeResult((HttpStatusCode)500,
"My custom internal server error.");
}
然后是角度控制器。
function errorCallBack(response) {
$scope.response = {
code: response.status,
text: response.statusText
}});
希望对您有帮助。
Ricardo G Saraiva answered 2020-02-29T15:06:03Z
0 votes
为此,您可能需要使用操作过滤器属性。 没有什么花哨。 只需创建一个类并从c#中的ActionFilterAttribute类继承即可。 然后重写名为OnActionExecuting的方法以实现此方法。 然后,只需在任何控制器的头上使用此过滤器即可。 以下是一个演示。
在需要在ActionFilterAttribute中生成基于自定义状态代码的消息的情况下,可以通过以下方式编写:
if (necessity_to_send_custom_code)
{
actionContext.Response = actionContext.Request.CreateResponse((HttpStatusCode)855, "This is custom error message for you");
}
希望这可以帮助。
Sajeeb Chandan answered 2020-02-29T15:06:32Z
0 votes
另一个简化的示例:
public class MyController : ApiController
{
public IHttpActionResult Get()
{
HttpStatusCode codeNotDefined = (HttpStatusCode)422;
return Content(codeNotDefined, "message to be sent in response body");
}
}
Content是在抽象类ApiController(控制器的基础)中定义的虚拟方法。 参见以下声明:
protected internal virtual NegotiatedContentResult Content(HttpStatusCode statusCode, T value);
themefield answered 2020-02-29T15:06:59Z
c# webapi返回html,c#-从Web API 2端点返回自定义HTTP状态代码相关推荐
- java 调用webapi json_java通过url调用web api并接收其返回的json
java通过url调用webapi并接收其返回的json数据,但现在结果总是:{"result":4,"data":{}}(未认证:),帮助文档如下:API使用 ...
- webapi输出炜json_asp.net web api只返回json数据格式
asp.net web api默认是同时支持返回xml和json数据格式的.这种机制是因为有web api框架中的SupportedMediaTypes的存在. 具体返回什么样的数据格式,你可以在请求 ...
- ASP.NET Web API中的返回值
本文将Web API中常用的返回值罗列了一下,如需要进一步详细了解,请点击这篇文章 返回值 继承接口 描述 void 无 返回http状态码204,告诉客户端此请求没有返回值 Json<T> ...
- VBS 请求WebAPI接口_如何设计WEB API
前言 我一直认为WEB API设计是后端工程师的活,对WEB API设计规范理解的不是很深,正是因为之前看过不同后端工程师的Web API设计难以对接前端产品,导致经常需要修改接口,浪费了很多时间,专 ...
- 关于名片全能王扫描,返回切边增强图片web api的图片数据分割
这个web api的接口是返回一个vcf的文件,文件中以END:VCARD和"\r\n"为结束符,后面的数据到文件末尾就是图片数据 首先,要以END:VCARD为结束符,就只能从中 ...
- java自定义返回码_java – 自定义HTTP状态代码
我考虑在一个项目中使用 fluent-http. 我从一个简单的"登录/密码"页面开始.我用字段登录名和密码创建一个简单的POJO: public class LoginReque ...
- java post请求返回500错误信息_Retrofit API Post call 返回错误 500,适用于 Postman
我正在尝试使用改进 2 使用其他 API,我已经能够使用一些端点,但注册端点不断返回 http 500 错误代码,但在使用邮递员测试时工作正常. @POST("auth/signup/&qu ...
- ASP.NET MVC4中调用WEB API的四个方法
当今的软件开发中,设计软件的服务并将其通过网络对外发布,让各种客户端去使用服务已经是十分普遍的做法.就.NET而言,目前提供了Remoting,WebService和WCF服务,这都能开发出功能十分强 ...
- Asp.Net Web API 2第一课——入门
前言 Http不仅仅服务于Web Pages.它也是一个创建展示服务和数据的API的强大平台.Http是简单的.灵活的.无处不在的.你能想象到几乎任何的平台都会有HTTP服务库.HTTP服务可以涉及到 ...
最新文章
- Bundle Adjustment原理及应用(附实战代码)
- 教程:4、文件权限和访问方式
- 多种方式测量AMP328频率响应
- python访问k8s的api_如何通过Python Kubernetes客户端连接microk8s API?
- uva10954 - Add All(multiset功能)
- iOS Mach异常和signal信号
- html ssm写用户登陆验证,ssm 使用token校验登录的实现
- t检验自由度的意义_t检验的原理是什么?有什么意义?谢谢
- leetcode·动态规划
- 完整图书馆管理系统(包含设计思路、图形界面、后台数据库)
- mro列表_方法解析顺序(MRO)
- 明日书苑:《九成宫醴泉铭》单字放大米字格临帖字帖
- 麻雀虽小,五脏俱全:从一个小功能看软件开发过程[转]
- css banner滚动,css编写banner轮播
- 2020年中国透明聚丙烯(TPP)行业概况:仍有较大市场空间 [图]
- 前后端分离开发模式介绍
- IE8 使用 Oracle ERP
- android水果购物车,实现购物车功能
- Python 从入门到爬虫极简教程
- k8s集群-master节点迁移
热门文章
- C++学习笔记-利用rapidJSON读取JSON数据
- mysql面试吗hi提_面试必备的10道MySQL题
- transporter上传卡正在交付_Xcode11,Transporter上传卡在——正在验证 APP - 正在通过App Store进行认证...
- button点击后变色_汽车改色膜新潮流,2021年流行渐变色
- 计算机网络之物理层:2、码元、速率、带宽、波特
- (王道408考研数据结构)第七章查找-第二节2:二分查找及其判定树
- c++程序设计中虚基类,多继承知识点
- ERROR: Process pool report error: Can‘t pickle
- shell 获取字符串前两个字符串、获取字符串最后一个字符、去掉字符串最后一个字符、去掉末尾一个字符、去掉末尾两个字符
- Python 抛异常处理(精)