文档章节

Restful 经常会遇到的HTTP状态码

learn_more
 learn_more
发布于 2016/05/06 09:48
字数 751
阅读 178
收藏 7
点赞 1
评论 0


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
粉丝 90
博文 240
码字总数 210196
作品 0
深圳
程序员
RESTful实践:如何设计API的错误消息

现有状况 发现很多RESTful API的错误代码都是用HTTP的状态码(Status Code)作为API的错误代码,公司的一些产品也是如此,如下图所示:![在此输入图片描述][1]![在此输入图片描述][2] 这种设计...

狐狸糊涂 ⋅ 2015/03/04 ⋅ 4

rest restful-api

前言 rest是Representational State Transfer的简称,直译过来就是:表述性状态转移(什么鬼?)。 rest这个概念出自美国的一位博士的论文,讲到rest的章节地址在这里:http://www.ics.uci.edu/...

ITgecko ⋅ 04/26 ⋅ 0

RESTful API 设计参考文献--restful-api-design-references

restful-api-design-references是RESTful API 设计参考文献列表,可帮助你更加彻底的了解REST风格的接口设计。 RESTful 介绍及设计思路 Principles of good RESTful API Design(译:好 REST...

匿名 ⋅ 2016/09/12 ⋅ 2

HTTP协议学习总结四(常见响应状态码)

http请求的状态码主要有1xx(临时响应)、2xx(成功)、3xx(已重定向)、4xx(请求错误)以及5xx(服务器错误)五个大类。但是我们会遇到的确不是很多,所以不用一一记住,下面是一个列表,...

xuange ⋅ 2014/09/23 ⋅ 9

使用CodeIgniter框架搭建RESTful API服务

使用CodeIgniter框架搭建RESTful API服务 发表于 2014-07-12 | 分类于 翻译笔记 | 6条评论 在2011年8月的时候,我写了一篇博客《使用CodeIgniter框架搭建RESTful API服务》,介绍了RESTful的...

thinkyoung ⋅ 2015/08/07 ⋅ 0

微服务指南走北(三):Restful API 设计简述

API的定义取决于选择的IPC通信方式,如果是消息机制(如 AMQP 或者 STOMP),API则由消息频道(channel)和消息类型;如果是使用HTTP机制,则是基于请求/响应(调用http的url),这里我们先简...

gsying1474 ⋅ 2016/08/30 ⋅ 0

前后端分离-Rest Api设计

What? 什么是Rest? REST即表述性状态传递(英文:Representational State Transfer,简称REST),是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。 REST本质上...

郭恩洲_OSC博客 ⋅ 2016/11/21 ⋅ 0

『阅读源代码的姿势:以 go-restful 为例』

大家好,我叫谢伟,是一名程序员。 下面结合我的经历和见闻,讲述下一名非科班程序员的成长过程: 学习一门编程语言 写尽量多的代码 补尽量多的基础知识 一定阶段后(有开发任务,能按时完成)...

谢小路 ⋅ 05/21 ⋅ 0

RESTful API 设计指南

RESTful API 设计指南 作者: 阮一峰 日期: 2014年5月22日 网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。 ...

山哥 ⋅ 2014/05/30 ⋅ 0

RESTful的具体实施案例

本文主要用来对照上一篇中提到的REST原则六约束与Richardson成熟度模型(http://my.oschina.net/crooner/blog/644825)。 本文转载自http://mp.weixin.qq.com/s?biz=MzA3NjYxOTA0MQ==&mid=40...

无若 ⋅ 2016/03/21 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vim编辑模式、命令模式

编辑模式 vim要从一般模式进入编辑模式只要按字母 i 、I、a、A、o、O键就可以了 要从编辑模式回到一般模式按键盘上的Esc键即可。 按键 作用 i 在当前字符前插入 I 在光标所在行的行首插入 o ...

黄昏残影 ⋅ 23分钟前 ⋅ 0

OSChina 周五乱弹 —— 如果有一天不当程序员了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @guanglun :分享off的单曲《我唱情歌给你听》 《我唱情歌给你听》- off 手机党少年们想听歌,请使劲儿戳(这里) @小小编辑 :#如果不做程序...

小小编辑 ⋅ 30分钟前 ⋅ 4

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 今天 ⋅ 0

Java8新增的DateTimeFormatter与SimpleDateFormat的区别

两者最大的区别是,Java8的DateTimeFormatter也是线程安全的,而SimpleDateFormat并不是线程安全。 在并发环境下使用SimpleDateFormat 为了能够在多线程环境下使用SimpleDateFormat,有这三种...

人觉非常君 ⋅ 今天 ⋅ 0

多线程如何控制执行顺序

线程的生命周期说明: 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、...

MarinJ_Shao ⋅ 今天 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Django第一期

安装Django 去https://www.djangoproject.com/download/ 下载最新版的Django,然后解压放到Anaconda\Lib\site-packages目录下,然后cmd进入此目录,输入安装命令: python setup.py install ...

大不了敲一辈子代码 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部