1、HTTP请求Content-Typehtml
常见的媒体格式类型以下:ajax
以application开头的媒体格式类型:json
另一种常见的媒体格式是上传文件之时使用的:后端
2、几种常见的Content-Type类型服务器
一、application/x-www-form-urlencodedcookie
经常使用于原生的 form 表单提交,若是不指定content-type,默认使用此格式提交数据。app
参数格式:key1=value1&key2=value2工具
二、content-type:multipart/form-datapost
另外一个常见的 POST 数据提交的方式, Form 表单的 enctype 设置为multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符(这就是boundary的做用)分开。
因为这种方式将数据有不少部分,它既能够上传键值对,也能够上传文件,甚至多个文件。当上传的字段是文件时,会有Content-Type来讲明文件类型;Content-disposition,用来讲明字段的一些信息。每部分都是以分隔符开始,紧接着是内容描述信息,而后是回车,最后是字段具体内容(字段、文本或二进制等)。若是传输的是文件,还要包含文件名和文件类型信息。消息主体最后以 分隔符标示结束。测试
经常使用于文件传输
发送的请求示例:
三、application/json
以Json格式编码数据体,方便传输结构化数据(相比键值对),普遍用于 ajax 请求
参数为json格式
{
"key1":"value1",
"key2":"value2"
}
四、text/xml
以xml格式编码数据体,是早期普遍使用的格式
3、不一样的content-type在jmeter中如何输入参数
一、application/x-www-form-urlencoded
参数能够在Parameters或Body Data里输入,格式不一样。这两个参数输入的tab页只能使用一个,某一个有数据后不能切换到另外一个。
示例以下
Parameters:
Body Data:
二、 content-type:application/json
(1)http请求头管理里面设置content-type为application/json
(2)在http请求,Body Data中输入json格式的参数
三、content-type:multipart/form-data
这种content-type的使用我的还没彻底会使用,下面内容摘自该文章:https://cloud.tencent.com/developer/news/367695
multipart/form-data主要用于post请求体中须要上传文件的场景。网上不少帖子告诉你们怎么传文件,却忽略了当post请求体中既须要上传文件,又须要传通常的json格式参数这种场景,下面就以经常使用的三种接口测试方法介绍multipart/form-data格式请求的发送,但愿能够减小你们将会踩到的坑(工具里的一些设置原理没有搞得太清楚,可是如下的实现方式亲测有效):
(1)填写protocal、host、port、method、url、encoding等;
(2)勾选Use multipart/form-data for POST;
(3)parameter中填写请求中除文件外的普通json格式参数;
(4)在Files Upload中填写须要上传的文件路径、参数名、MIME Type(multipart/form-data);若是这里没有须要上传的文件,也能够不填,只发送parameters中的参数,前提是后端接口认为这个参数不是必传参数;
(5)http头信息中输入cookie等信息,这里千万不要输入content-type为multipart/form-data,在请求那里已经勾选了Use multipart/form-data for POST(注:若是头信息这里输入了content-type为multipart/form-data,那么全部的参数都会被当成文件以二进制形式传输,咱们parameter里的文本格式参数就不会被识别,接口会提示那些参数为空,这点绝对是万年坑);
(6)接下来咱们观察下咱们发送出的请求具体内容:
第1处:有些同窗会有疑问说那文件格式的上传是以二进制形式的,multipart/form-data格式的参数的分隔符boundary呢,jmeter会自动生成;
第2处:能够看到tmp.py这个文件名和前面的name是这个文件在当前接口中的参数名;
第3处:说明该文件content-type为multipart/form-data;
第4处:实际的文件内容在这里不会展现;
能够看到咱们在parameter中输入的非文件类型参数的content-type为text/plain;