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

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

4xx,客户端错误: 400 - Bad Request,表示API消费者发送到服务器的请求是有错误的; 401 - Unauthorized,表示没有提供授权信息或者提供的授权信息不正确...例如请求的媒体类型是application/xml,但是Web API仅支持application/json类型,并且API不会将application/json作为默认格式提供; 409 -...415 - Unsupported media type,与406正好相反,有一些请求必须带着数据发往服务器,这些数据都属于特定的媒体类型,如果API不支持该媒体类型格式,415就会被返回。...错误和故障 系统时不时的会出现一些问题,这些问题可以划分为两类:错误和故障。 错误 Errors 错误通常是由API的消费者引起的。...API消费者请求时传递的数据是不合理的,这时API就会正常的将其拒绝。例如,请求的凭证是不合理的,或者请求的参数不合理等等。 这些就是HTTP 4xx错误。

2K20

【Http】一文备忘Http状态码(406,415,422)

最近在调试接口时,web api 报了一个415状态码。好久没见到这个状态码,一时还真不知道啥情况。所以,人的大脑是有遗忘规律的,为了加深印象,所以我觉得我有必要再复习一下。...例如请求的媒体类型是application/xml,但是Web API仅支持application/json类型,并且API不会将application/json作为默认格式提供; 409:Conflict...415:Unsupported media type,与406正好相反,有一些请求必须带着数据发往服务器,这些数据都属于特定的媒体类型,如果API不支持该媒体类型格式,415就会被返回。...[FromBody]*接收,服务端api是不会接收数据,便会返回415 Unsupported Media Type-不支持的媒体类型。...服务器已经懂得了实体的Content Type的媒体类型,也就是说415状态码肯定不合适; 此外,实体的语法也没有问题,所以400也不合适。 但是服务器仍然无法处理这个实体数据,这时就可以返回422。

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

    HTTP 响应状态码全解

    HTTP 状态代码或响应码共分为五类,分别是 1×× 提示信息,2×× 成功,3×× 重定向,4×× 客户端错误,5×× 服务器错误。 本文包含了完整的 HTTP 状态码以及相应的描述信息。...当我们进行 API 测试时,通常首先会检查 API 调用返回的响应的状态码。这就要求我们必须熟悉那些最常见的 HTTP 状态码,以便我们能够更快地识别问题。...415 不支持的媒体类型 415(不支持的媒体类型)状态代码表示源服务器拒绝为请求提供服务,因为有效负载的格式不受目标资源上此方法的支持。...格式问题可能是由于请求指示的内容类型或内容编码,或者是直接检查数据的结果。...502 坏网关 502(坏网关)状态代码表示服务器在充当网关或代理时,在尝试完成请求时从其访问的入站服务器接收到无效响应。

    4.3K30

    HTTP状态代码(各种错误代码集合)

    HTTP 状态码错误集合客户端错误(4xx)4xx 表示客户端发送的请求有问题。状态码英文描述中文解释400Bad Request请求语法错误,服务器无法理解。...406Not Acceptable无法提供符合请求头 Accept 要求的响应。407Proxy Authentication Required需要通过代理服务器身份验证。...415Unsupported Media Type不支持的媒体类型。416Range Not Satisfiable请求的范围无效(比如文件分片下载时范围错误)。...421Misdirected Request请求被发送到错误的服务器。422Unprocessable Entity请求格式正确,但语义错误(常见于 WebDAV 或 API 校验失败)。...服务器错误(5xx)5xx 表示服务器处理请求时出现问题。状态码英文描述中文解释500Internal Server Error服务器内部错误。

    1.2K10

    爬虫415(UNsupported media type)问题解决

    ---- 今天在我爬某个网站的时候,返回的结果是415,不支持的媒体类型(Unsupported media type),当时遇到这个问题的时候,我有点蒙,什么是媒体,在这里先不管他什么是媒体,反正就是报错...,但是能肯定的是415错误肯定是请求的问题。...2、弄清楚这个请求是post/get请求,我确定了这个请求“http://cq.gsxt.gov.cn/gsxt/api/ebaseinfo/queryForm/“+pripid+”/1?...3、get请求和post请求在爬虫看来最大的差别就是,post请求参数都写在了请求地址的“?”后面,而get请求的参数要写在request请求类里面。...把各种请求头信息都加上了(请求头不要写错了,千万不能带着问题区找问题),发现还是报Unsupported media type错误。

    1.3K10

    Servlet HTTP 状态码大全列表

    以下是可能从 Web 服务器返回的 HTTP 状态码和相关的信息列表: 代码 消息 描述 100 Continue 只有请求的一部分已经被服务器接收,但只要它没有被拒绝,客户端应继续该请求。...当您转换一个 "post" 请求为一个带有长的查询信息的 "get" 请求时发生。 415 Unsupported Media Type 服务器不接受该请求,因为媒体类型不被支持。...这些方法通过 HttpServletResponse 对象可用。 序号 方法 & 描述 1 public void setStatus ( int statusCode )该方法设置一个任意的状态码。...如果您的反应包含了一个特殊的状态码和文档,请确保在使用 PrintWriter 实际返回任何内容之前调用 setStatus。...HTTP 状态码实例 下面的例子把 407 错误代码发送到客户端浏览器,浏览器会显示 "Need authentication!!!" 消息。

    1.6K70

    Servlet HTTP 状态码大全列表

    以下是可能从 Web 服务器返回的 HTTP 状态码和相关的信息列表: 代码 消息 描述 100 Continue 只有请求的一部分已经被服务器接收,但只要它没有被拒绝,客户端应继续该请求。...当您转换一个 "post" 请求为一个带有长的查询信息的 "get" 请求时发生。 415 Unsupported Media Type 服务器不接受该请求,因为媒体类型不被支持。...这些方法通过 HttpServletResponse 对象可用。 序号 方法 & 描述 1 public void setStatus ( int statusCode )该方法设置一个任意的状态码。...如果您的反应包含了一个特殊的状态码和文档,请确保在使用 PrintWriter 实际返回任何内容之前调用 setStatus。...HTTP 状态码实例 下面的例子把 407 错误代码发送到客户端浏览器,浏览器会显示 "Need authentication!!!" 消息。

    1.1K20

    Servlet HTTP 状态码大全列表

    以下是可能从 Web 服务器返回的 HTTP 状态码和相关的信息列表: 代码 消息 描述 100 Continue 只有请求的一部分已经被服务器接收,但只要它没有被拒绝,客户端应继续该请求。...当您转换一个 "post" 请求为一个带有长的查询信息的 "get" 请求时发生。 415 Unsupported Media Type 服务器不接受该请求,因为媒体类型不被支持。...设置 HTTP 状态代码的方法 下面的方法可用于在 Servlet 程序中设置 HTTP 状态码。这些方法通过 HttpServletResponse 对象可用。...如果您的反应包含了一个特殊的状态码和文档,请确保在使用 PrintWriter 实际返回任何内容之前调用 setStatus。...HTTP 状态码实例 下面的例子把 407 错误代码发送到客户端浏览器,浏览器会显示 "Need authentication!!!" 消息。

    73930

    Spring使用@ControllerAdvice注解优雅地处理异常信息

    最常用的就是异常处理。 统一异常处理 需要配合@ExceptionHandler使用。当将异常抛到Controller时,可以对异常进行统一处理,规定返回的json格式或是跳转到一个错误页面。... - 不支持的媒体类型 87     */ 88    @ResponseStatus(HttpStatus.UNSUPPORTED_MEDIA_TYPE) 89    @ExceptionHandler...handleHttpMediaTypeNotSupportedException(HttpMediaTypeNotSupportedException e) { 91        logger.error("不支持的媒体类型...    Map map = new HashMap(); 5    map.put("code", "40001"); 6    //判断异常的类型...,返回不一样的返回值 7    if(ex instanceof TemplateNotFoundException){ 8        map.put("msg","缺少必需参数:"+((TemplateNotFoundException

    1.4K20

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

    ,表示API的消费者发送到服务器的请求是错误的 401 - Unauthorized,表示没有权限 403 - Forbidden,表示用户验证成功,但是该用户仍然无法访问该资源 404 - Not found...错误;有时也用在尝试创建资源时该资源已存在的情况。...415 - Unsupported media type,这个和406正好返回来,比如说我向服务器提交数据的media type是xml的,而服务器只支持json,那么就会返回415 422 - Unprocessable...这样就和Post方法返回中用到的路由名一致了,第二个参数是一个匿名类里面有个属性id,它会编程路由里的参数,最后一个参数是响应会返回的数据。...这个Action所期待的参数类型是Id的集合, 而实际传入的是id的字符串, 通过ArrayModelBinder来实现转化. 最后修改POST方法的返回: ? 测试一下: ?

    2.2K10

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

    Startup MVC dotnet new webapi 新的 ASP.NET 模板取消了Startup类并利用了 C# 10 的顶级语句功能,因此我们有一个Program.cs包含所有引导代码的文件...即使将类型设为可空,如果未发送正文,您将收到 HTTP 415(无效媒体类型)或 400(错误请求)响应,具体取决于是否Content-Type设置了标头。...paymentRequest]) => { }); HTTP 响应 MVC 和 Minimal API 都会自动将您的返回类型序列化到响应正文并返回 HTTP 200 (OK) 响应,例如: //...绑定到此模型类型时,任何验证错误都会自动添加到模型状态。...我在深入研究源代码时发现的一件事是,序列化对象ObjectResult[17]的IResult实现的基类仅支持序列化 JSON。有人告诉我这是设计使然,因为大多数开发人员很少需要支持其他媒体类型。

    9.2K10

    http状态码一览表

    属性请求 412——一个或多个请求头字段在当前请求中错误 413——请求的资源大于服务器允许的大小 414——请求的资源URL长于服务器允许的长度 415——请求资源不支持请求项目格式 416——请求中包含...URL重写是一种在你的网站跟踪不使用 cookies 的用户的方法。这是通过在每一个URL尾部附加路径信息实现的,但是 servlet 会话跟踪API会自动的注意这些细节。...307状态被加入到 HTTP 1.1中是由于许多浏览器在收到302响应时即使是原始消息为POST的情况下仍然执行了错误的转向。只有在收到303响应时才假定浏览器会在POST请 求时重定向。...406 (Not Acceptable/无法访问) 406 (SC_NOT_ACCEPTABLE)表示请求资源的MIME类型与客户端中Accept头信息中指定的类型不一致。...415 (Unsupported Media Type/不支持的媒体格式) 415 (SC_UNSUPPORTED_MEDIA_TYPE)意味着请求所带的附件的格式类型服务器不知道如何处理。

    1.9K70

    HTTP状态码一览

    HTTP状态码共分为5种类型: HTTP状态码分类 1** 信息,服务器收到请求,需要请求者继续执行操作 2** 成功,操作被成功接收并处理 3** 重定向,需要进一步的操作以完成请求 4** 客户端错误...与301类似。使用GET和POST请求查看 304 Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。...所请求的资源必须通过代理访问 306 Unused 已经被废弃的HTTP状态码 307 Temporary Redirect 临时重定向。与302类似。...,超时 409 Conflict 服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突 410 Gone 客户端请求的资源已经不存在。...Expect的请求头信息 500 Internal Server Error 服务器内部错误,无法完成请求 501 Not Implemented 服务器不支持请求的功能,无法完成请求 502 Bad

    46710

    数据包扩展

    HTTP通信过程建立连接-->发送请求数据包-->返回数据响应包-->关闭连接 浏览器建立与web服务器之间的连接 浏览器将请求数据包打包(生成请求数据包)发送到web服务器 web服务器将处理结果打包...301 (永久移动) 请求的网页已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。...414 (请求的 URI 过长)请求的 URI(通常为网址)过长,服务器无法处理。 415 (不支持的媒体类型)请求的格式不受请求页面的支持。...5xx:服务器错 500 (服务器内部错误) 服务器遇到错误,无法完成请求。 501 (尚未实施)服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。...505 (HTTP 版本不受支持)服务器不支持请求中所用的 HTTP 协议版本。

    1.1K20

    HTTP协议之状态码详解

    这时候你只要知道518是属于(5XX,服务器错误就可以了) 已定义范围 分类 1XX 100-101 信息提示 2XX 200-206 成功 3XX 300-305 重定向 4XX 400-415 客户端错误...Type(不支持的媒体类型) 服务器无法理解或不支持客户端所发送的实体的内容类型 416 Requested Range Not Satisfiable(所请求的范围未得到满足) 417 Expectation...) 客户端发起的请求超出服务器的能力范围(比如,使用了服务器不支持的请求方法)时,使用此状态码。...在不获取资源的情况下了解资源的情况(比如判断其类型)   2. 通过查看Response中的状态码, 看看某个对象是否存在   3. 通过查看Header, 测试资源是否被修改了。   ...500 Internal Server Error(内部服务器错误)   这个太常见了, 我们开发网站的时候,当我们的程序出错了时,就会返回500错误。   实例:ASP.NET 程序出错 ?

    2.1K10
    领券