欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Postman:请求方法、认证

程序员文章站 2022-05-05 15:17:08
...

请求方法

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:请求方法、认证


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

Postman:请求方法、认证


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

Postman:请求方法、认证

 

 

 

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:请求方法、认证

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

 

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

Postman:请求方法、认证


 

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

Postman:请求方法、认证


 

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

Postman:请求方法、认证

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


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

Postman:请求方法、认证

 

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

Postman:请求方法、认证

注:
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:请求方法、认证

 

 

PATCH请求

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

例4:URI拼接传递参数

Postman:请求方法、认证

 

例4_1:请求体传递参数

Postman:请求方法、认证

 

 

DELETE请求

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

例5:请求体传递参数

Postman:请求方法、认证


例5_1:URI拼接传递参数

Postman:请求方法、认证

 

 

Headers

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

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

Postman:请求方法、认证

 

例6_1:发送带headers的请求

Postman:请求方法、认证


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

Postman:请求方法、认证

 

 

 

认证方法

概述

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

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

 

基本认证

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

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

Postman:请求方法、认证

 

 

Hawk Authentication认证

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

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

Postman:请求方法、认证

 

 

Digest Auth认证

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

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

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

Postman:请求方法、认证

 

 

OAuth 1.0

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

Postman:请求方法、认证

 

 

Bearer Token

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

Postman:请求方法、认证

 

 

 

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

 

Postman模拟登陆

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

Postman:请求方法、认证

Postman:请求方法、认证

 

步骤2:构造请求

Postman:请求方法、认证

 

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"])