接口测试中 content-type都有哪些最常见的类型?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试中 content-type都有哪些最常见的类型?相关的知识,希望对你有一定的参考价值。
参考技术A 接口测试 content-type有哪些常用类型?1.application/json 适合提交一些复杂结构的数据,适合restful风格的接口
2.application/form格式的一种数据,浏览器的原生表单的形式;
3.text/xml格式,以http协议为传输协议,以xml为编码方式的一种远程调用规范,一般在webservice结构里比较常见;
4.multipartform-data,需要在表单中上传文件时使用到该格式
接口测试:提交报文消息数据的四种常见格式(Content-Type)
1. application/x-www-form-urlencoded
最常见的方式,get请求和一些参数较少的post请求会采用这种格式来传输数据,在jmeter中,如果不指定content-type,默认便是application/x-www-form-urlencoded;
- 其提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码
2. application/json
这个是实际接口测试中,使用到最多的方式了。越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 JSON 字符串。由于 JSON 规范的流行,除了低版本 IE 之外的各大浏览器都原生支持 JSON.stringify,服务端语言也都有处理 JSON 的函数,使用 JSON 不会遇上什么麻烦。
看一个示例:
{
"areaCode": "86",
"signedKeyPri": "a0aff5d29d0aabb1adbf401beb5c732e8a30316f627ef926db871335f5459e47",
"signedKeyPub": "05e6db735d456d82e85347ddc08cea7cbc1007a99a2a8c50539a429f5405785377",
"mobile": "13049368566",
"identityKeyPri": "38e32595f1a0521f13272c1f9d7e990bf795fa8cb45ca6c24dc16e2b07ef7041",
"identityKeyPub": "056441a42fa9f776eade8be4bb125e341edcfcfc42276f4db59cd663dfa796901c",
"nickname": "永不言弃66",
"validateCode": "076521",
"password": "1386216b52067a593d30aa634d8c4f29"
}
使用json的好处:
- 简洁,我们可以一眼就看出其中的内容,方便检查排错
- JSON更加轻量级,不管是编写,传输,还是解析都更加高效
- JSON在传输过程中采用了压缩技术,更加的节省宽带
3. multipart/form-data
一般涉及到上传文件的接口,都会用此方式提交数据。在jmeter中使用时,需要在http请求中勾选对post使用multipart/form-data选项。看一个请求示例:
POST /file/chat/upload HTTP/1.1
User-Agent: Dalvik/2.1.0 (Linux; U; Android 8.0.0; Android SDK built for x86 Build/OSR1.180418.024)
accessToken: 7cce9cc8-1ed1-4327-a387-13135d614b78
userId: 1267387243547361281
lang: zh
deviceId: 00000000-194e-a514-0000-00004bd9a8c7
Content-Type: multipart/form-data; boundary=f3afd4d5-2cd5-4b02-8c2f-e11917ad5fb1
Content-Length: 65236
Host: lmm.yunti163.top:9999
Accept-Encoding: gzip
Connection: keep-alive
--f3afd4d5-2cd5-4b02-8c2f-e11917ad5fb1
Content-Disposition: form-data; name="thumbnail"; filename="1590638969087CgEIDF7POWyAOEAdAAC13wtSk4o87.jpeg"
Content-Type: image/png
Content-Length: 18173
这个例子稍微复杂点。首先生成了一个 boundary 用于分割不同的字段,为了避免与正文内容重复,boundary 很长很复杂。然后 Content-Type 里指明了数据是以 multipart/form-data 来编码,本次请求的 boundary 是什么内容。消息主体里按照字段个数又分为多个结构类似的部分,每部分都是以 --boundary 开始,紧接着是内容描述信息,然后是回车,最后是字段具体内容(文本或二进制)。如果传输的是文件,还要包含文件名和文件类型信息。消息主体最后以 --boundary-- 标示结束。
4. text/xml
这是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范。
以上是关于接口测试中 content-type都有哪些最常见的类型?的主要内容,如果未能解决你的问题,请参考以下文章
接口测试:提交报文消息数据的四种常见格式(Content-Type)