文档章节

Restful 经常会遇到的HTTP状态码

learn_more
 learn_more
发布于 2016/05/06 09:48
字数 751
阅读 277
收藏 7

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>


1、405 Method Not Allowed

请求方式错误,比如服务端约定PUT请求,结果客户端采用了GET;

我的项目中是这样的,访问的服务真实存在,但是用PUT,POST访问的url是不存在的,所以出现这样的问题,就是访问的IP写成了别人的了。


2、415 Unsupported Media Type

请求的Content-Type 错误,对于GET请求没有限制,但是对于其他请求方式,尤其是POST,则必须使用 ContentType:"application/json" ; 另外 dataType 是服务端返回类型,最好不要指定。

这里还有一点需要注意,那就是服务端会采用 @RequestBody来获取参数,因为 RestController默认把 @RequestBody和@ResponseBody作为JSON处理,所以需要采用JSON格式接收

contentType:"application/json"

3、400 Bad Request

表示请求报文中存在语法错误

这个是和415有关联的,因为415必须指定请求给服务端的数据类型,如果指定了为"application/json" , 那么使用ajax发送数据是即data参数必须为json格式的字符串

JSON.stringify(obj) ; 不能使用$('form').serialize();原因就是这个方法内部使用了 $.param(obj)把参数转为 url的参数了,而且还进行了特殊字符转码,需要使用decodeURIComponent解码,jquery还把空格转为了+号

data:JSON.stringify(obj)


4、403 Forbidden

就我的工程中是因为,Controller里面新增了delete方法,但是没有重启就直接前台ajax 调用 delete,换句话说如果没有对应的方法就直接访问,就会出现这个 403,其实 404 与之不同的是估计就是请求方式的不同导致的,所以,只要重启项目就OK了。


5、413 Request Entity Too Large

Failed to load resource: the server responded with a status of 413 (Request Entity Too Large)

发送POST请求数据时,由于表单数据太大,导致发生了一个客户端错误,如果有web服务器,比如Nginx那么是可以调节上传的数据的大小来解决这个问题,或者是可以把请求的参数变小。


6、302 Found 

应该是访问的URL地址和静态资源的文件夹路径冲突了,静态资源地址的文件夹也是。

临时性重定向,该状态码表示请求的资源已经被分配了新的URI,希望用户本次能使用新的URI访问。


7、401 Authentication is possible but has failed

表示发送的请求需要有通过HTTP验证的认证信息,这个就是在使用SVN时,在浏览器打开需要用户输入用户名和密码。


8、404 Not Found

表示资源不存在,很可能是客户端URL地址写错了


图例:

© 著作权归作者所有

learn_more
粉丝 93
博文 240
码字总数 210196
作品 0
深圳
程序员
私信 提问
RESTful 接口设计开发规范

API 接口可以说是软件开发人员的用户界面,API 设计也是系统架构的重要环节。尤其对复杂和分布式系统而言,其设计的好坏,直接影响着整个系统的设计,实现和演进。一套糟糕的 API 设计也会严...

garyond
2018/07/23
0
0
我们必须要知道的RESTful服务最佳实践

看过很多RESTful相关的文章总结,参齐不齐,结合工作中的使用,非常有必要归纳一下关于RESTful架构方式了,RESTful只是一种架构方式的约束,给出一种约定的标准,完全严格遵守RESTful标准并不...

操张林
2018/06/07
0
0
RestFul的一些注意事项和接口开发规范

曾应领导要求,给同事讲restful,由于之前没有认真做过总结,漏掉了好多,自我感觉一塌糊涂。今天在公众号偶然看到了一篇总结,豁然开朗,为防止走丢,搬了过来。 正文内容 从开始学习PHP到现...

郑宗强
2018/08/01
0
0
利用 Spring Boot 设计风格良好的Restful API及错误响应

一、前言 网上经常会看到一些文章,旨在介绍如何使用Spring MVC或Spring Boot实现Restful接口,譬如: 对于如上实现方式,本人着实不敢恭维。试问,这算哪门子的Restful?自认为其与Restful...

宅楠军
2018/07/05
0
0
RESTful API 设计学习笔记

本文主要参考阮一峰的 RESTful API 设计指南 1. 协议 API 与用户的通信协议,总是使用 HTTPs 2. 域名 应该尽量将 API 部署在专用域名下: 如果 API 很简单,不会有进一步扩展,可以考虑放在主...

fish
09/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊rocketmq producer的batch

序 本文主要研究一下rocketmq producer的batch batch rocketmq-client-4.6.0-sources.jar!/org/apache/rocketmq/client/producer/DefaultMQProducer.java public class DefaultMQProducer ex......

go4it
昨天
4
0
Delphi中的延时

开发过程中经常会需要使用到延时功能,Delphi中有不少实现延时的方法,网上已有不少文章做过说明和分析,但本着实践出真知的态度,还是亲自动手研究一番心里比较踏实。 常用的延时方法 Slee...

天朝八阿哥
昨天
4
0
001-Consul

Consul安装(单节点) mkdir -p /data/consulcd /data/consulwget https://releases.hashicorp.com/consul/1.6.2/consul_1.6.2_linux_amd64.zipunzip consul_1.6.2_linux_amd64.zip复制c......

伟大源于勇敢的开始
昨天
5
0
nginx + frp 搭建内网穿透

上一个项目是开发微信公众号,由于微信的各种烦人操作,只能到处找内网映射工具 ngrok也用过,花生壳也用过 都不怎么稳定,无意间听说了frp,本着一颗折腾的心搭建了一下,结果发现很不错,就...

lineasy
昨天
7
0
构建CRD工程 - 程序员学点xx 43 k8s

Kubernetes -3- <!--more--> <center>这是yann的第98篇分享</center> [TOC] 本日状态: 帮同事排了一天bug。 Kubernetes -3- <!--more--> 这是yann的第98篇分享 第 1 部分 承前 昨天用视屏的方......

tmp4
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部