开发中的接口请求方式以及api工具的使用
接口请求的八种方式:
1、Get
向特定资源发出请求(请求指定页面信息,并返回实体主体)
2、Post
向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改
3、Put
向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)
4、Head
与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)
5、Delete
请求服务器删除request-URL所标示的资源*(请求服务器删除页面)
6、Trace
回显服务器收到的请求,用于测试和诊断
7、opions
返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户端查看服务器性能)
8、Connect
HTTP/1.1协议中能够将连接改为管道方式的代理服务器
Get和head被称为安全方法
它们只会从服务器获取数据而不会操作数据,数据不变就不会有问题
get 和post 的区别
-
数据传输方式:
- GET请求通过URL(统一资源定位符)将数据附加在请求行中进行传输。数据暴露在URL中,可被缓存、浏览器历史记录等记录下来,因此不适合传输敏感信息。
- POST请求通过请求体将数据传输。数据不会暴露在URL中,而是被包含在请求体中,因此更适合传输敏感信息。
-
数据长度限制:
- GET请求对数据长度有限制,由URL长度限制(不同浏览器和服务器有不同限制),超过限制可能会导致请求被截断或拒绝。
- POST请求对数据长度限制较少,主要受服务器的限制。
-
安全性:
- GET请求在浏览器历史记录中可见,也可以作为书签保存。如果传输敏感信息,这些信息可能会被他人获取。
- POST请求相对于GET请求更安全,因为数据不会显示在URL中。
-
数据类型:
- GET请求通常用于获取数据,不应有任何副作用(无副作用的操作)。换句话说,对服务器的请求不会产生影响,仅用于获取数据。
- POST请求通常用于向服务器提交数据,可能会对服务器状态产生影响,比如创建新的资源、更新数据等。
-
缓存:
- GET请求可以被浏览器缓存,可以通过使用缓存减少对服务器的请求次数。
- POST请求默认不会被浏览器缓存。
-
速度:
-
Get请求速度快
-
POST请求速度慢
-
post请求的过程:
(1)浏览器请求tcp连接(第一次握手)
(2)服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
(4)服务器返回100 Continue响应
(5)浏览器发送数据
(6)服务器返回200 OK响应
get请求的过程:
(1)浏览器请求tcp连接(第一次握手)
(2)服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
(4)服务器返回200 OK响应
get的总耗是post的2/3左右
-
-
API工具使用(eolinker、postman、postapi)
Postman
GET请求
GET请求仅用来获取数据,在Postman中进行GET请求时,如果需要携带参数,只需要在Params中添加相应的参数,最终请求时参数会以{KEY}={VALUE}
的形式拼接在URL之后。
步骤:
- 选择请求类型为GET
- 输入需要请求的URL地址
- GET请求输入需要携带的参数信息,以key-value形式,可以为空
- 点击
Send
开始请求 - 查看请求结果和返回数据信息
POST请求
POST是向API接口提交数据的请求操作,可以根据我们提供的数据更新、删除指定的数据信息。
由于POST请求时可能会对服务端数据进行更改,因此大部分的POST请求都需要进行相关的校验,API校验相关的信息就需要在Authorization参数页面进行配置;而POST请求携带的相关数据可以在请求头Headers或者请求体Body中配置。
步骤:
- 选择请求类型为POST
- 填入需要请求的URL地址
- 如果API请求需要认证,则使用Authorization配置认证类型或在Headers请求头中使用token认证
- 选择Body标签,配置请求参数
- 请求参数使用时,选择raw即源码格式传输
- 选择JSON指参数以JSON格式输入
- 参数输入区域,以JSON格式写入多个参数,本质是key-value的对象形式
- 点击
Send
,开始发起请求 - 查看返回的请求结果信息
请求参数详解
Postman最常使用的GET和POST请求中,使用的参数类型有Params、Authorization、Headers、Body四种。
-
Params:配置GET类型的请求参数,执行时拼接在URL之后
-
Authorization:认证信息配置,POST请求时使用
-
Headers:POST请求时设置请求头信息,比如浏览器信息等会存在请求头中
-
Body:POST请求时的请求体信息,一般用于提交业务相关的参数信息
-
none:无,参数置空
-
from-data:
-
就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;
content-disposition
,用来说明字段的一些信息; -
由于有
boundary
隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。
-
-
x-www-from-urlencoded:
- 同样是key - value 格式输入,但不支持文件传输,与form-data区别在于http请求body格式不太一样,另外就是不可以设置content -type,而form-data是可以设置每个value的content -type
- 会将表单内的数据转换为键值对,比如,username=张三
-
raw:
- 源代码格式的参数信息,可以以Text、JavaScript、JSON、HTML、XML的格式写入参数,最常使用的时JSON格式数据的传输。
- content-type= text/html(HTML 文档);text/plain(纯文本);text/css(CSS 样式表);application/json (json字符串)
-
binary:二进制文件的传输
- 相当于Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件。
- 相当于Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件。
-
GraphQL:用于应用编程接口的查询语言
multipart/form-data和x-www-form-urlencoded区别
- multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,
- x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的,只是最后会转化为一条信息
-
-
Cookies:用来对请求URL的Cookies信息进行管理
返回结果详解
- Body
- Pretty:结果美化展示,选择Pretty时,还可以针对结果数据展示的格式进行选择。如希望数据结果解析为:HTML、JSON、XML、TEXT等多种格式。
- Raw:原生的,即不进行任何修饰的返回结果数据
- Preview:预览,对返回数据的解析预览,如HTML会展示为网页信息
- Cookies:返回结果中带有的Cookies信息
- Headers:返回结果中的Header信息
- Status:请求结果状态,代表请求是否成功或失败的状态码信息
- Time:只请求时间
- Size:请求结果数据的大小
后端代码层面处理
@RequestParam
用来处理(前端)Content-Type: 为application/x-www-form-urlencoded或者form-data编码的内容
该注解有两个属性: value、required;value用来指定要传入值的id名称,required用来指示参数是否必须绑定;
@RequestBody
该注解常用来处理Content-Type: 不是application/x-www-form-urlencoded编码的内容,例如application/json, application/xml等;
前端规定的是raw方式,那么就需要使用@RequestBody接收参数,注意这里Headers里需要以application/json作为Content-type