postman——基础操作——API请求与响应——构造器

前提基础回顾:

 

http请求报文的结构:   浏览器发送给web服务器的http请求报文,如下所示:


先看Request 消息的结构, Request 消息分为3部分:

第一部分叫Request line, ------------>起始行

第二部分叫Request header,  ------------>首部

第三部分是body, ------------>主体


注意:header和body之间有个空行,
---------------------------------------------------------------------------------------------------------------------------

第一行中的Method表示请求方法,比如"POST","GET",  Path-to-resoure表示请求的资源, Http/version-number 表示HTTP协议的版本号

当使用的是"GET" 方法的时候, body是为空的

我们打开Fiddler 捕捉一个登录的Request 然后分析下它的结构, 在Inspectors tab下以Raw的方式可以看到完整的Request的消息:
-------------------------------------------------------------------------------------------------------------------

下面为get方法,并带有参数


GET https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=sitehao123&wd=%E4%B8%AD%E5%9B%BD&rsv_pq=ee5e88db00155eb1&rsv_t=9b46NVmtUvhHk8NuPqytTgFcpScJZfmNOSxhFBaAu5rlcjCsQ9PfON8N98xNepLuQQ&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_sug3=10&rsv_sug1=1&rsv_sug7=001&prefixsug=%25E4%25B8%25AD%25E5%259B%25BD&rsp=8&rsv_sug9=es_0_1&inputT=10643&rsv_sug4=12203&rsv_sug=9 HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36
Sec-Fetch-User: ?1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Referer: https://www.baidu.com/?tn=sitehao123&H123Tmp=nunew11
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: BIDUPSID=1655D38E3EB9FAF984C3D838C40375AC; PSTM=1564563068; BD_UPN=12314553; BAIDUID=8B7CDF0DBB1D8B4D8DC4288AE32C655B:FG=1; ispeed_lsm=2; MCITY=-%3A; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BDSFRCVID=7AKsJeCCxG3e2tjwgnO1j79umibdsgZhD6873J; H_BDCLCKID_SF=tbAD_CKKf-3bfTuGDJOqKn0thxtX2bjMfbTf_p7F5l8-hCQXDPjf-n-shxTw-lQCMJ7PBfQaKqcxOKQphPbm5nIXQ48qbpbjb2oiLInN3KJm_UK9bT3v5Duy-tQ42-biW2tH2Mbdax7P_IoG2Mn8M4bb3qOpBtQmJeTxoUJ25DnJhhCGe6D2e5Q3jNLsbtQb26r-3--8-bTVHRDk5-Qo-4_eqxby26Pf0m3eaJ5n0-nnhnK45-6bbPCgDfCfqRQL2CrbQb3u2p--bK0Ry66jK4JKDG0tJ6OP; H_PS_PSSID=1469_21080_30211_30071_26350; H_PS_645EC=881dEMXJjSRsjFsceTvx5SWR2G%2FilqMyfp6iGiw%2BDfeUUG0wTEM81HCuM8v1K4C3CQ; delPer=0; BD_CK_SAM=1; PSINO=5; BDSVRTM=113


注意:浏览器可以在get方法中把数据传给服务器,数据放在URL的?后面;


百度搜索中,查询字符串以名=值这样的形式出现,多个名值之间用&分隔开;



---------------------------------------------------------------------------------------------------------------------------------------- 请求方法 请求资源即URL http协议的版本号 POST https:
//anp.njpji.cn/un_manager/user/toLogin HTTP/1.1 ---------起始行 Host: anp.njpji.cn --------->下面是header首部 Connection: keep-alive Content-Length: 85 Accept: */* Origin: https://anp.njpji.cn X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36 Content-Type: application/x-www-form-urlencoded;charset=UTF-8 Sec-Fetch-Site: same-origin Sec-Fetch-Mode: cors Referer: https://anp.njpji.cn/un_manager/views/session/login.html Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 Cookie: Hm_lvt_70a44149803685eae3a9163f23ea34b7=1566289322,1566346318; JSESSIONID=5C305287359661147AD9C5570451A7E8 ------->空行 username=7droqslNzQg%3D&password=Jrrw3HiJ%2BArijSvr3jrq1Q%3D%3D&verificationCode=0237 ------> 此处为body主体 ================================================================================================================================

 

 

请求构造器允许用户快速创建任何类型的http请求。http请求分为4个部分,分别是:

(1)、Method:请求方法

(2)、URL:请求网址;

(3)、Header:起始行;

(4)、body:主体

-------------------------------------------------------------------------------------------------------------------

postman——基础操作——API请求与响应——构造器

 

 

 

===================================================================================================================================

(1)、Method:请求方法;使用下来菜单,选择请求方法,请求体编辑器根据请求方法的变化而作相应改变,即编辑区域而不同(get方法时body标签置灰(禁用))。

postman——基础操作——API请求与响应——构造器

 

 

 

 

===========================================================================================================================

 

 

(2)、URL:请求网址;输入请求网址,然后在数据编辑器中输入URL参数,也可以单独添加键值对;如果URL已经有了参数,URL会自动拆分键值对显示。

PS:params:参数;    query:查询;           query   params:查询参数;

 

示例:豆瓣网中查询:倚天屠龙记

postman——基础操作——API请求与响应——构造器

 

 

可以通过鼠标右击方发,转编码(16进制的转换):

postman——基础操作——API请求与响应——构造器

 

 postman——基础操作——API请求与响应——构造器

 

 PS:url中如果带参数,post会自动转换到params中;params中输入参数,postman也会自动带入到URL中;

 

 

 

 

 

==============================================================================================================================

 

 

 

 

(3)、headers:起始行;

下面为get方法,并带有参数

GET https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=sitehao123&wd=%E4%B8%AD%E5%9B%BD&rsv_pq=ee5e88db00155eb1&rsv_t=9b46NVmtUvhHk8NuPqytTgFcpScJZfmNOSxhFBaAu5rlcjCsQ9PfON8N98xNepLuQQ&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_sug3=10&rsv_sug1=1&rsv_sug7=001&prefixsug=%25E4%25B8%25AD%25E5%259B%25BD&rsp=8&rsv_sug9=es_0_1&inputT=10643&rsv_sug4=12203&rsv_sug=9 HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36
Sec-Fetch-User: ?1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Referer: https://www.baidu.com/?tn=sitehao123&H123Tmp=nunew11
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: BIDUPSID=1655D38E3EB9FAF984C3D838C40375AC; PSTM=1564563068; BD_UPN=12314553; BAIDUID=8B7CDF0DBB1D8B4D8DC4288AE32C655B:FG=1; ispeed_lsm=2; MCITY=-%3A; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BDSFRCVID=7AKsJeCCxG3e2tjwgnO1j79umibdsgZhD6873J; H_BDCLCKID_SF=tbAD_CKKf-3bfTuGDJOqKn0thxtX2bjMfbTf_p7F5l8-hCQXDPjf-n-shxTw-lQCMJ7PBfQaKqcxOKQphPbm5nIXQ48qbpbjb2oiLInN3KJm_UK9bT3v5Duy-tQ42-biW2tH2Mbdax7P_IoG2Mn8M4bb3qOpBtQmJeTxoUJ25DnJhhCGe6D2e5Q3jNLsbtQb26r-3--8-bTVHRDk5-Qo-4_eqxby26Pf0m3eaJ5n0-nnhnK45-6bbPCgDfCfqRQL2CrbQb3u2p--bK0Ry66jK4JKDG0tJ6OP; H_PS_PSSID=1469_21080_30211_30071_26350; H_PS_645EC=881dEMXJjSRsjFsceTvx5SWR2G%2FilqMyfp6iGiw%2BDfeUUG0wTEM81HCuM8v1K4C3CQ; delPer=0; BD_CK_SAM=1; PSINO=5; BDSVRTM=113

注意:浏览器可以在get方法中把数据传给服务器,数据放在URL的?后面;

     百度搜索中,查询字符串以名=值这样的形式出现,多个名值之间用&分隔开;

 

header选项卡,将显示headers键值编辑器。用户可以将任何字符串设置为头名称。在输入框中输入文字时系统会自动匹配http  header  key的建议(自动弹出);

postman——基础操作——API请求与响应——构造器

 

 postman——基础操作——API请求与响应——构造器

 

 

 

=============================================================================================================

 

 

 

(4)、body:请求体。postman允许用户发送任何类型的http请求。请求体一般有4个区域,分别对应不同的请求格式。

             当通过http发送请求时,服务器可能会期望一个content——type头。允许服务器正确的解析主体。

             对于form-date以及urlencoded的请求类型,postman会自动附加正确的头部类型;这样就不要设置了,postman没有为binary(二进制)类型请求体设置任何类型;

 

示例;

application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
   
另外一种常见的媒体格式是上传文件之时使用的:

multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式
Content-Type:即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。
              
              例如:Content-Type: application/x-www-form-urlencoded

常见的媒体格式类型如下:

    text/html : HTML格式

    text/plain :纯文本格式 
     
    text/xml :  XML格式

    image/gif :gif图片格式 
   
    image/jpeg :jpg图片格式 

    image/png:png图片格式

以application开头的媒体格式类型:

   application/xhtml+xml :XHTML格式

   application/xml     : XML数据格式

   application/atom+xml  :Atom XML聚合格式 
   
   application/json    : JSON数据格式

   application/pdf       :pdf格式  

   application/msword  : Word文档格式

   application/octet-stream : 二进制流数据(如常见的文件下载)

   application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
   
另外一种常见的媒体格式是上传文件之时使用的:

    multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式

 

(一)、raw类型:raw类型请求体,可以用来发送任何格式的文本文件;如text、json、JavaScript、xml、html等。一般用来发送json格式的请求体,

                               用户可以自定义raw请求体的内容类型;

postman——基础操作——API请求与响应——构造器

 

 PS:CTRL+B组合键可以自动美化json或者xml的内容;

 

 

(二)、binary:二进制类型请求体,允许用户发送不能输入的内容,如图像、音频、视频等文件以及文本文件。

              PS:注意:postman中不存储任何文件(html5规范规定),每次上传文件都要重新附加一个文件,哪怕通过历史或者集合重新请求,也要重新导入。

postman——基础操作——API请求与响应——构造器

 

 

 

 

 

(三)、form-data :是web表单用来传输数据的默认编码,模拟了在网站上填写表单并提交的一个过程;也可以把文件附件到一个健上;

                                   可以输入键值对;需要在表单中进行文件上传时,可以需要使用该格式。

             PS:postman不允许一次上次多个文件,且每一个文件都有自己的content-type;

postman——基础操作——API请求与响应——构造器

 

 

postman——基础操作——API请求与响应——构造器

 

 

 

 

 

 

(四)、x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

postman——基础操作——API请求与响应——构造器

 

 

 

 

===============================================================================================================================

 

 

(5)、cookies:单击“send”右下方的“cookies”,可以打开“manage  cookies”窗口设置cookie。即可以增加、删除、对应的cookies;

 

下面为get方法,并带有参数

GET https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=sitehao123&wd=%E4%B8%AD%E5%9B%BD&rsv_pq=ee5e88db00155eb1&rsv_t=9b46NVmtUvhHk8NuPqytTgFcpScJZfmNOSxhFBaAu5rlcjCsQ9PfON8N98xNepLuQQ&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_sug3=10&rsv_sug1=1&rsv_sug7=001&prefixsug=%25E4%25B8%25AD%25E5%259B%25BD&rsp=8&rsv_sug9=es_0_1&inputT=10643&rsv_sug4=12203&rsv_sug=9 HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36
Sec-Fetch-User: ?1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Referer: https://www.baidu.com/?tn=sitehao123&H123Tmp=nunew11
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: BIDUPSID=1655D38E3EB9FAF984C3D838C40375AC; PSTM=1564563068; BD_UPN=12314553; BAIDUID=8B7CDF0DBB1D8B4D8DC4288AE32C655B:FG=1; ispeed_lsm=2; MCITY=-%3A; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; BDSFRCVID=7AKsJeCCxG3e2tjwgnO1j79umibdsgZhD6873J; H_BDCLCKID_SF=tbAD_CKKf-3bfTuGDJOqKn0thxtX2bjMfbTf_p7F5l8-hCQXDPjf-n-shxTw-lQCMJ7PBfQaKqcxOKQphPbm5nIXQ48qbpbjb2oiLInN3KJm_UK9bT3v5Duy-tQ42-biW2tH2Mbdax7P_IoG2Mn8M4bb3qOpBtQmJeTxoUJ25DnJhhCGe6D2e5Q3jNLsbtQb26r-3--8-bTVHRDk5-Qo-4_eqxby26Pf0m3eaJ5n0-nnhnK45-6bbPCgDfCfqRQL2CrbQb3u2p--bK0Ry66jK4JKDG0tJ6OP; H_PS_PSSID=1469_21080_30211_30071_26350; H_PS_645EC=881dEMXJjSRsjFsceTvx5SWR2G%2FilqMyfp6iGiw%2BDfeUUG0wTEM81HCuM8v1K4C3CQ; delPer=0; BD_CK_SAM=1; PSINO=5; BDSVRTM=113

注意:浏览器可以在get方法中把数据传给服务器,数据放在URL的?后面;

     百度搜索中,查询字符串以名=值这样的形式出现,多个名值之间用&分隔开;



下面为post方法:


POST https://anp.njpji.cn/un_manager/user/toLogin HTTP/1.1
Host: anp.njpji.cn
Connection: keep-alive
Content-Length: 85
Accept: */*
Origin: https://anp.njpji.cn
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Referer: https://anp.njpji.cn/un_manager/views/session/login.html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: Hm_lvt_70a44149803685eae3a9163f23ea34b7=1566289322,1566346318; JSESSIONID=5C305287359661147AD9C5570451A7E8

username=7droqslNzQg%3D&password=Jrrw3HiJ%2BArijSvr3jrq1Q%3D%3D&verificationCode=0237

 postman——基础操作——API请求与响应——构造器

 

 

 

 

===========================================================================================================================

 

 

 

(6)、header  presets(头预置):即保存一些常用的headers。在headers选项卡下,可以单击presets,从下拉框中选择一个预置的header;

postman——基础操作——API请求与响应——构造器

 

 postman——基础操作——API请求与响应——构造器

 

 postman——基础操作——API请求与响应——构造器

postman——基础操作——API请求与响应——构造器

上一篇:Java之递归


下一篇:上班第一天,挑战算法大牛们,你能做出来吗