Postman:请求方法、认证

请求方法

HTTP有多种请求方法,如GET、POST、PUT、DELETE、PATCH、HEAD等,不同的请求方法定义了请求如何被服务器处理。Postman支持所有的HTTP请求方法,包括一些很少使用的请求方法,如PROPFIND、UNLINK等

 

 

GET请求

1、HTTP  GET请求方法是从服务器检索数据,数据由统一资源标识符(URI)标示

2、GET请求将参数拼接在URI后面并传递给服务器(参数的Key与Value之间有"="号,Value不需要引号包裹,多个参数之间用"&"符号连接)

如:

https://postman-echo.com/get?foo1=bar&foo2=bar2中,第一个参数为"foo1=bar",第二个参数为"foo2=bar2"

用Postman构建请求及收到的响应如下:在输入URL时会自动填写Params键值对
Postman:请求方法、认证_第1张图片


注:带Cookie的get请求
例1:带Cookie参数的headers请求

Postman:请求方法、认证_第2张图片


例1_1:不带Cookie参数的headers请求

Postman:请求方法、认证_第3张图片

 

 

 

POST请求

1、HTTP POST请求方法是指将数据传输到服务器并引发响应,返回的数据取决于服务器的实现

2、用户可以将参数拼接在统一资源定位符(URL)后面,也可以将请求参数放在Body中

3、POST方法一般用来向服务器输入数据,它把提交的数据放置在是HTTP包的包体中
    ⑴请求方法选择POST
    ⑵在request url处输入请求url
    ⑶请求方法选为POST后,请求栏下的Body栏会高亮,也就是可以向request body中填充数据(添加再body种的参数并不会追加到url后面)

4、Body中有4种数据填充形式,分别为:form-data、x-www-form-urlencoded、raw、binary

例2:URL拼接参数
Postman:请求方法、认证_第4张图片

注:
一般来说这种将参数附在URL之后的POST请求方法很少遇到,现在很多都是将参数放在Body中的

 

例2_1:以form-data形式发送参数

Postman:请求方法、认证_第5张图片


 

例2_2:以application/x-www-form-urlencoded形式发送参数

Postman:请求方法、认证_第6张图片


 

例2_3:以raw_text形式发送参数

Postman:请求方法、认证_第7张图片

注:以raw形式发送参数时,还可以选中参数的格式。如JSON等


例2_3_1:以raw_JSON形式发送参数

Postman:请求方法、认证_第8张图片

 

例2_4:以binary形式发送参数

Postman:请求方法、认证_第9张图片

注:
1、从上面几个例子中可以看出,参数在放在不同的位置处,得到的响应是不同的,所以在日常中需要确定好请求参数发送的方式(当然现在将请求参数放在URL中的发送方式很少,几乎没有,反正在正式中我还没遇到过)

2、在发送请求时,我们最好在headers部分加上服务器接收的数据类型,如:以application/x-www-form-urlencoded形式发送参数时,在headers中增加Content-Type: application/x-www-form-urlencoded键值对

3、各种形式发送参数请求的差异

body类型 区别
form-data  就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。但Postman目前尚不支持上传多个文件
x-www-form-urlencoded 就是application/x-www-from-urlencoded,会将表单内的数据转换为键值对
raw  可以上传任意格式的文本,可以上传text、json、xml、html等
binary  相当于Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件

                   

 

PUT请求

HTTP PUT请求方法类似于HTTP POST。同样是将数据传输到服务器(并引发响应)。返回的数据取决于服务器的实现。用Postman构建请求及收到的响应如下

例3:

Postman:请求方法、认证_第10张图片

 

 

PATCH请求

HTTP PATCH请求方法用于在服务器上更新资源。一般来说,PATCH请求支持URI拼接传递参数,也支持在请求体中以form-data的形式传递参数

例4:URI拼接传递参数

Postman:请求方法、认证_第11张图片

 

例4_1:请求体传递参数

Postman:请求方法、认证_第12张图片

 

 

DELETE请求

HTTP DELETE请求方法用于在服务器上删除资源。一般来说,DELETE请求支持URI拼接传递参数,也支持在请求体中以form-data的形式传递参数

例5:请求体传递参数

Postman:请求方法、认证_第13张图片


例5_1:URI拼接传递参数

Postman:请求方法、认证_第14张图片

 

 

Headers

请求头(Request Headers)是请求报文特有的,它为服务器提供了一些额外信息。例如,客户端希望接收什么类型的数据

例6:使用F12可抓取请求详情

Postman:请求方法、认证_第15张图片

 

例6_1:发送带headers的请求

Postman:请求方法、认证_第16张图片


例6_2:使用postman查看响应信息头

Postman:请求方法、认证_第17张图片

 

 

 

认证方法

概述

1、Authorization是验证是否拥有从服务器访问所需数据的权限当发送请求时,通常必须包含参数,以确保请求具有访问和返回所需数据的权限。Postman提供了授权类型,可以轻松地在Postman本地应用程序中处理身份验证协议。

2、Postman不会保存授权请求头数据和请求参数,以防止公开的敏感数据暴露,如API密钥。如果想检查Postman生成的授权请求头和参数,可以单击预览请求按钮"Preview Request"
    

 

基本认证

1、使用postman来构建基本认证(Basic Auth)权限认证请求,当传递正确的用户名和密码时,将返回一个"200OK"的状态码;如果不传递密码或密码错误时,将返回一个"401 Unauthorized"

2、基本身份验证是一种比较简单的授权类型,需要经过验证的用户名和密码才能访问数据资源。这就需要我们输入正确的用户名和对应的密码

Postman:请求方法、认证_第18张图片

 

 

Hawk Authentication认证

1、hawk是一个HTTP认证方案,使用MAC(Message Authentication Code,消息认证码算法)算法,它提供了对请求进行部分加密验证的认证HTTP请求的方法,包括HTTP方法、请求URI和主机

2、hawk方案要求提供一个共享对称密匙在服务器与客户端之间,通常这个共享的凭证在初始TLS保护阶段建立的,或者是从客户端和服务器都可用的其他一些共享机密信息中获得的

Postman:请求方法、认证_第19张图片

 

 

Digest Auth认证

1、在“Digest Auth”流程中,客户端向服务器发送请求,服务器返回客户端的nonce和realm值;客户端对用户名、密码、nonce值、HTTP请求方法、被请求资源URI等组合后进行MD5运算,把计算得到的摘要信息发送给服务端。服务器然后发回客户端请求的数据。

2、的好处就是不必把具备密码的信息对外传输,只需将这些密码信息加入一个对方给定的随机值计算哈希值,最后将哈希值传给对方,对方就可以认证你的身份。

3、Digest模式避免了密码在网络上明文传输,提高了安全性,但它仍然存在缺点,例如认证报文被攻击者拦截到攻击者可以获取到资源

Postman:请求方法、认证_第20张图片

 

 

OAuth 1.0

OAuth 1.0是一个开放标准,它不需要将用户名和密码提供给第三方应用,就允许用户让第三方应用访问该用户在某一网站上储存的秘密资源

Postman:请求方法、认证_第21张图片

 

 

Bearer Token

“Bearer Token”是一个安全令牌。任何用户都可以使用它来访问数据资源,而无需使用加密密钥

Postman:请求方法、认证_第22张图片

 

 

 

拓展:使用postman和requests模块登录豆瓣

 

Postman模拟登陆

步骤1:踩点(目标URL、服务器接收的数据类型、提交的表单数据)
Postman:请求方法、认证_第23张图片

Postman:请求方法、认证_第24张图片

Postman:请求方法、认证_第25张图片

 

步骤2:构造请求

Postman:请求方法、认证_第26张图片

 

Requests模块请求

import requests

url = "https://accounts.douban.com/j/mobile/login/basic"
data = {"ck":"","remember":"false","name":"18380******","password":"zh18380********","ticket":""}
device_headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
                                    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36 "}

response = requests.post(url=url,data=data,headers=device_headers)
result = response.json()
print(type(result))


print(result)
print(result["description"])


 

你可能感兴趣的:(接口测试:Postman)