首页
学习
活动
专区
圈层
工具
发布

使用ASP.NET Core 3.x 构建 RESTful API - 3.3 状态码、错误故障、ProblemDetails

HTTP状态码 HTTP状态码会告诉API的消费者以下事情: 请求是否执行成功了 如果请求失败了,那么谁为它负责 HTTP的状态码有很多,但是Web API不一定需要支持所有的状态码。...not allowed,当尝试发送请求到资源的时候,使用了不被支持的HTTP方法时,就会返回405状态码; 406 - Not acceptable,这表示API消费者请求的表述格式并不被Web...例如请求的媒体类型是application/xml,但是Web API仅支持application/json类型,并且API不会将application/json作为默认格式提供; 409 -...415 - Unsupported media type,与406正好相反,有一些请求必须带着数据发往服务器,这些数据都属于特定的媒体类型,如果API不支持该媒体类型格式,415就会被返回。...例如,当返回类型为 IActionResult 的方法返回客户端错误状态码的时候(4xx),同时还会返回一个body,这个 body 就是 ProblemDetails。

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ASP.NET (Core)WebApi参数传递实操演练

    Asp.NET Web API中Controller是如何解析从客户端传递过来的数据,然后赋值给Controller的参数的,也就是参数绑定或者模型绑定。 常见的绑定方式有如下四种。...所以通过上述讲述我们知道有多种方式将数据从客户端传递到服务端,然后模型绑定会自动为我们创建正确的方法来绑定到后台参数中,简单和复杂的类型参数都会进行绑定。...3、ASP.NET WebAPI中FromUri和FromBody两类特性区别 1)、【FromUri】特性 应用【FromUri】特性,Web API Action中参数将从URL中解析数据。...2)、【FromBody】特性 应用【Frombody】特性,Web API Action中参数将从请求体(Request Body),并且通过媒体类型格式化器获取和绑定数据。...在Web API框架下有4中内置的媒体格式化器,分别是: 1:JsonMediaTypeFormatter,对应的content-type是:application/json, text

    4.7K20

    Postman报错Unsupported Media Type

    ,也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。.../xml :XML格式 image/gif :gif图片格式 image/jpeg :jpg图片格式 image/png :png图片格式 以application开头的媒体格式类型...) application/x-www-form-urlencoded :中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式...) 另外一种常见的媒体格式是上传文件之时使用的: multipart/form-data :需要在表单中进行文件上传时,就需要使用该格式 以上就是我们经常会用到的content-type的内容格式。...通过此例中message信息,表示该post请求不支持“text/plain”纯文本格式类型。

    1.4K20

    .NET平台系列25:从 ASP.NET 迁移到 ASP.NET Core 的技术指南

    在下面的示例(来自默认网站模板)中,扩展方法为管道配置以下支持: 错误页 HTTP 严格传输安全 从 HTTP 重定向到 HTTPS ASP.NET Core MVC public void Configure...这些设置可用于支持应用程序已部署到的环境(以此用途为例)。...在 ASP.NET 中,静态文件存储在各种目录中,并在视图中进行引用。在 ASP.NET Core 中,静态文件存储在“Web 根”(内容根>/wwwroot)中,除非另有配置。...数据源是使用 x-www-form-urlencoded 内容类型发布的表单数据时,这些属性会影响模型绑定。...其他资源 将库移植到 .NET Core 其他项目迁移具体操作步骤,请参考以下博客: 《从 ASP.NET MVC 迁移到 ASP.NET Core MVC》 《从 ASP.NET Web API

    3K20

    用ASP.NET Core 2.0 建立规范的 REST API -- GET 和 POST

    html 本文介绍的是使用ASP.NET Core建立Richardson成熟度为2级的伪RESTful web API, 本文介绍的是GET和POST....以第二个方法为例,使用POSTMAN测试,如果能查询到数据: ? 这是没有问题的,但是如果查询一个不存在的资源: ?...状态码 状态码是非常重要的,因为只有状态码会告诉API的消费者: 请求是否如预期的成功,或者失败 如果出现了错误,谁该为这个错误负责 下面再列举一下web API会用到的状态码: 200级别,表示成功:...处理异常 当Action发生异常的时候,默认情况下ASP.NET Core会返回500: ? ? 但还是自己处理一下比较好,可以在Action里面使用try catch: ?...当请求的media type不可用的时候,并且消费者不支持默认格式,这时服务器就应该返回 406 Not Acceptable 状态码。 ASP.NET Core 支持输出和输入两种格式化器。

    2.2K10

    记录一下 http status code

    101 Switching Protocol,协议转换,在使用 Web Socket 的时候就会遇到,下面是一个示例,响应会有一个 Connection:Upgrade 的请求头, Upgrade 会指定要使用的协议名称...一般表示请求处理成功 200 OK,请求处理成功 201 Created,请求处理成功,并且新资源已经创建 202 Accepted,请求已经接受,正在处理,尚未处理完成 204 No Content,响应内容为空...请求,如果是 POST 请求,重定向后会使用 GET 请求且 Body 数据会丢失 307、308 支持 POST 请求,在 POST 重定向的时候会带上原来请求的 body 再请求新的地址,body...,服务器拒绝处理 415 Unsupported Media Type,不支持的媒体类型或不支持的编码,比如服务器只支持处理 JSON 请求,但是请求是 xml 格式 5xx 5xx 一般表示服务端错误...500 Internal Server Error,服务器内部错误 501 Not Implemented 服务器不支持需要处理请求的功能,比如图片压缩等处理 502 Bad Gateway 反向代理或网关找不到处理请求的服务器

    1.5K20

    从 MVC 到使用 ASP.NET Core 6.0 的Minimal API

    从 MVC 到使用 ASP.NET Core 6.0 的Minimal API https://benfoster.io/blog/mvc-to-minimal-apis-aspnet-6/ 2007...2012 年,也许是由于 ReSTful API 的日益流行,借鉴了 ASP.NET MVC 的许多概念又引入了 ASP.NET Web API,这是对 WCF 的重大改进,使开发人员能够以更少的仪式构建...即使将类型设为可空,如果未发送正文,您将收到 HTTP 415(无效媒体类型)或 400(错误请求)响应,具体取决于是否Content-Type设置了标头。...MVC 在 ASP.NET 之上添加的功能之一是模型状态。从文档[7]: 模型状态表示来自两个子系统的错误:模型绑定和模型验证。源自模型绑定的错误通常是数据转换错误。...Nancy[19]在 Web API / OWIN 时代为我们提供了类似的东西,最近Carter[20]为 ASP.NET Core 出现,提供与 Minimal API 类似的功能。

    9.2K10

    WCF Web API 说再见,继承者ASP.NET Web API

    几个月之前WCF和ASP.NET 团队合并,把WCF Web API的内容并入了ASP.NET Web API,目前WCF Web API的所有功能并没有完成移植,将在ASP.NET Web API正式发布的时候完成移植...,非常期待正式发布的ASP.NET  Web API,更期望ASP.NET MVC 4会和ASP.NET MVC 3一样可以很好的运行在Mono上,这样Mono平台就完美了,可以完全的支持RESTful...同时提供了一份WCF Web Api到ASP.NET Web API的迁移指南How to Migrate from WCF Web API to ASP.NET Web API,其中列出了 WCF Web...Api 到 ASP.NET Web Api 的映射表: WCF Web API ASP.NET Web API Service Web API controller Operation Action...Web API支持Model Binding和验证(.NET4.5的WebForm也支持哦)。Web API框架内部自动支持XML和JSON格式,用户可以自行开发其他类型的超媒体类型。

    1.7K90

    ASP.NET Core MVC 概述

    如果将表示代码和业务逻辑组合在单个对象中,则每次更改用户界面时都必须修改包含业务逻辑的对象。 这常常会引发错误,并且需要在每次进行细微的用户界面更改后重新测试业务逻辑。...功能 ASP.NET Core MVC 包括以下功能: 路由 模型绑定 模型验证 依赖关系注入 筛选器 区域 Web API 可测试性 Razor 视图引擎 强类型视图 标记帮助程序 视图组件 路由 ASP.NET...验证属性在值发布到服务器前在客户端上进行检查,并在调用控制器操作前在服务器上进行检查。...Web API 除了作为生成网站的强大平台,ASP.NET Core MVC 还对生成 Web API 提供强大的支持。 可以生成可连接大量客户端(包括浏览器和移动设备)的服务。...Framework 包括到内置支持通过 HTTP 内容协商支持设置数据的格式作为 JSON 或 XML。 编写自定义格式化程序以添加对自己格式的支持。 使用链接生成启用对超媒体的支持。

    9.2K20

    HTTP协议之状态码详解

    这时候你只要知道518是属于(5XX,服务器错误就可以了) 已定义范围 分类 1XX 100-101 信息提示 2XX 200-206 成功 3XX 300-305 重定向 4XX 400-415 客户端错误...Type(不支持的媒体类型) 服务器无法理解或不支持客户端所发送的实体的内容类型 416 Requested Range Not Satisfiable(所请求的范围未得到满足) 417 Expectation...有些服务器不支持HTTP早期的HTTP协议版本,也不支持太高的协议版本 状态码505   204 No Content(没有内容)   返回的Response中只有一些Header和一个状态行, 没有实体的主题内容...将以个大文档分解为多个下载段同时下载 比如,在线看视频   实例: 一些流媒体技术比如在线视频,可以边看边下载。 就是使用206来实现的。   ...500 Internal Server Error(内部服务器错误)   这个太常见了, 我们开发网站的时候,当我们的程序出错了时,就会返回500错误。   实例:ASP.NET 程序出错 ?

    2.1K10

    来聊聊 HTTP 如何

    HTTP 是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过 HTTP 发送。客户端以及服务器指定使用适合的 MIME-type 内容类型。   ...POST 请求可能会导致新的资源的建立和/或已有资源的修改。 4 PUT 从客户端向服务器传送的数据取代指定的文档的内容。 5 DELETE 请求服务器删除指定的页面。...请求的资源已被永久的移动到新 URI,返回信息会包括新的 URI,浏览器会自动定向到新 URI。今后任何新的请求都应使用新的 URI 代替 302 临时移动。与 301 类似。但资源只是临时被移动。...如果只是服务器暂时无法处理,则会包含一个 Retry-After 的响应信息 414 请求的 URI 过长(URI 通常为网址),服务器无法处理 415 服务器无法处理请求附带的媒体格式 416 客户端请求的范围无效...417 服务器无法满足 Expect 的请求头信息 5** 服务器错误,服务器在处理请求的过程中发生了错误 500 服务器内部错误,无法完成请求 501 服务器不支持请求的功能,无法完成请求 502

    75540

    @RequestBody出现请求415问题

    contentType的值为『“application/json”』 ,因为此处@RequestBody接受的是一个通过json转换的对象 //如果不设置,默认为text/html,那么是支持该种类型的...,会报415错误 注意2:data:JSON.stringify(this.queryParam) 因为对象是不能在网络中传输的,网络只能识别字符串,所以我们这里要把JSON对象转换成JSON字符串。...json转换的对象 //如果不设置,默认为text/html,那么是支持该种类型的,会报415错误 }...所以如果前端ajax传过来的是application/x-www-form-urlcoded然后后台用springMvc的@requestBody Object obj 因为类型不一致 此时也是会报415...错误的 使用时机: A) GET、POST方式提时, 根据request header Content-Type的值来判断: application/x-www-form-urlencoded

    1.4K40

    杂(一)

    ASP.Net WebAPI 和 WebMVC 问题 ---- 跨域 针对 .NET Framework MVC 跨域,只需要在 web.config 中添加如下的内容即可: API,除了上面这样的设置,还需要添加一个特殊的设计,就是为每个 APIController 添加一个 OPTIONS 方法,返回 null 即可: public string Options()...简单类型直接拼接,复杂类型属性拼接 对于 .Net Core MVC: 对于 Post 请求,不论基本类型还是复杂类型参数,调用 API 时,既可以在 Query 中提交参数,也可以使用 x-www-form-urlencoded...如果有[FromForm] attribute 修饰参数,则需要以 x-www-form-urlencoded 形式提交参数 如果是复杂类型,调用 API 时,默认应该以 application/json...这个页面中引入的 js 框架会根据当前访问的 url 去路由到相应的子页面组件(可以理解为页面片段)进行逻辑处理和页面渲染。web 站中并没访问的这个页面资源,所以出现 404。

    1.1K20

    Asp.Net Web API 2第十四课——Content Negotiation(内容协商)

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET Web...HTTP规范(RFC 2616)将内容协商定义为“在有多个表现可用时,为一个给定的响应选择最佳表现的过程”。...Web API提供了XML和JSON的媒体格式化器,因而你可以创建自定义的格式化器,以支持其它媒体类型。...用于响应的媒体类型 如果未找到格式化器,方法返回null,而客户端会接收到一个HTTP的406(不可接收的)错误。...如果未找到匹配,内容协商器会尝试匹配请求体的媒体类型(有请求体时)。例如,如果请求含有JSON数据,内容协商器会找到JSON格式化器。

    1.1K10

    HTTP 响应状态码全解

    当我们进行 API 测试时,通常首先会检查 API 调用返回的响应的状态码。这就要求我们必须熟悉那些最常见的 HTTP 状态码,以便我们能够更快地识别问题。...204-无内容,状态代码指示服务器已成功完成请求,并且在响应有效载荷主体中没有要发送的附加内容。...415 不支持的媒体类型 415(不支持的媒体类型)状态代码表示源服务器拒绝为请求提供服务,因为有效负载的格式不受目标资源上此方法的支持。...格式问题可能是由于请求指示的内容类型或内容编码,或者是直接检查数据的结果。...需要先决条件 429 请求太多 431 请求标题字段太大 444 连接关闭无响应 451 因法律原因不可用 499 客户端关闭请求 5×× 服务器错误 状态代码的5xx(Server Error)类表示服务器意识到它已经出错或无法执行请求的方法

    4.3K30
    领券