使用eolink做接口测试的时候,会不会有个疑问,比如说:填写请求体时,都是填写参数名和参数值,Form-data和json这两种格式有什么区别吗?
首先了解下Form-data,我们在填写Form-data格式时,会看到旁边有一个Content-Type,那么它是什么意思,有什么作用呢?
Content-Type(内容类型),一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些 PHP 网页点击的结果却是下载一个文件或一张图片的原因。Content-Type 标头告诉客户端实际返回的内容的内容类型。
然后看一下Form-data以application开头的媒体格式类型:
application/x-www-form-urlencoded :表单默认的提交数据的格式,form表单数据被编码为key/value格式发送到服务器,并且键值对都是间隔分开的。 另外一种常见的媒体格式是上传文件之时使用的:
multipart/form-data:需要在表单中进行文件上传时,就需要使用该格式,既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息。
在eolink上面请求头部也会区别填入。
再来说说json格式,我们从Content-Type可以看出来区别:json格式是是:application/json。
实际上,现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 json字符串。由于 json规范的流行,除低版本的ie,其他浏览器都基本都会支持。json格式支持比键值对复杂得多的结构化数据。服务端语言也都有处理 json的函数,使用 json不会遇上什么麻烦,而且json格式支持比键值更复杂的结构,例如object结构和array结构。
最后总结一下:Form-data两种内容类型,一种用于填写表单数据,一种用于上传文件,在键值格式上是这样的:a=1&b=2&c=3
而json格式无法上传文件,请求体中只能填写json数据格式,但支持object结构和array等复杂结构。键值格式是{“a”:1,“b”:2,“c”:3}
文章中使用的是eolink接口测试工具,大家也可以尝试下载测试使用