捕获HTTP请求
Postman提供了轻松查看和捕获应用程序中发送和接收的实际HTTP请求流量的工具, 可以在Postman本机应用程序中使用内置代理进行抓包,或者使用Postman的Chrome浏览器应用程序的扩展拦截器
postman内置代理
postman有一个可以捕获HTTP请求的代理
⑴postman应用程序监听客户端应用程序或者设备发出的任何请求
⑵postman代理捕获请求并将请求转发到服务器
⑶服务器通过postman代理将响应返回给客户端
设置Postman代理
用户可以使用Postman的代理特性来截获从手机发出的HTTP消息,其前提是要确保计算机和手机连接到同一个本地无线网络,截获步骤如下:
第1步:在Postman中设置代理
1、通过单击标题工具栏中的图标,打开Postman应用程序中的代理设置窗口(PROXY SETTINGS模式)
2、保持默认端口5555,将"Target"目标设置为“历史记录”: 捕获所有请求并将其存储在“历史记录”侧边栏面板中
第2步:查看电脑IP
cmd打开命令行,输入ipconfig查看电脑IP
第3步:在移动设备端设置HTTP代理
1、打开手机设置,让手机与电脑端连接同一个WiFi
2、长按连接的WiFi,点击修改网络->显示高级选项,选择手动设置代理
3、服务器主机名填写电脑IP,服务器端口填写postman中设置的端口5555,点击保存
第4步:如果捕获手机端所有的http请求会比较多,这时候可以在Filters中填写想要捕获的地址(当然也可以不过滤)
第5步:postman和设备端设置好代理后,便可以在左侧history栏看到捕获的请求了
代理
代理服务器充当内部网络和Internet之间的安全屏障,使Internet上的其他人无法访问内部网络上的信息
什么是代理
1、在标准请求和响应模式中,客户端向服务器发出请求,服务器返回响应
2、代理服务器是一种应用程序或系统,充当用户计算机和互联网之间的中介,或者更具体的说:用户通过客户端访问网络,请求会先发送到代理,然后由代理转发到目标服务器,并且目标服务器的响应也是经过代理返回客户端的
3、代理就像执行各种功能的中间人一样。 Postman有一个内置的Web代理来捕获API请求,Postman Interceptor拦截网络流量,以及代理设置来引导API请求
4、代理可以驻留在用户的本地机器上,也可以在网络中的某个地方,或者在客户端与互联网上目标服务器之间的任意一点上
注:
除了传递信息之外,代理还可以做更多事情
1、记录您的机器和互联网之间的所有流量
2、显示所有请求,响应,Cookie和标头的内容
3、将流量路由到指定的Internet位置
4、调试
5、直接攻击的安全性
6、DevOps负载平衡
配置代理设置
1、在Postman应用程序中发出的所有请求通过代理服务器进行路由。 这与使用内置代理捕获网络流量不同,后者允许Postman拦截网络流量
2、Postman的Mac,Windows和Linux原生应用程序支持配置代理。 可以指定使用自定义代理,也可以使用操作系统中定义的系统代理。如果所有应用程序都需要使用相同的代理,请使用系统代理。 如果要将Postman的请求定向到自定义代理服务器,请使用自定义代理
要配置代理设置,请单击标题工具栏右侧的扳手图标,选择“设置”,然后选择“Proxy”选项卡
使用自定义代理
Postman允许配置自定义代理设置,以指示Postman通过代理服务器转发HTTP或HTTPS请求。 换句话说,这将通过用户自己选择的代理服务器发送所有的Postman应用程序请求
原理过程:
1、Postman应用程序是通过所选代理发送请求的客户端
2、自定义代理服务器将请求发送到服务器
3、服务器通过代理服务器返回响应
注:
1、自定义代理设置默认情况下是禁用的,用户可以使用切换开关打开
2、通过选中相应的复选框选择代理服务器的类型。 默认情况下,HTTP和HTTPS都会被选中。,这意味着HTTP和HTTPS请求都将通过代理服务器
3、在Proxy Server下的第一个字段中,输入代理服务器的主机或IP地址(不带协议)。 在Proxy Server下的第二个字段中,输入代理服务器的端口
使用系统代理
如果所有应用程序都需要使用相同的代理,则可能在操作系统级别配置了默认代理。 使用系统代理设置,通过操作系统的默认配置,将用户的HTTP或HTTPS请求转发给Postman。 换句话说,用户在告诉Postman应用程序所有Postman发送的请求都要遵循操作系统的默认配置
原理过程:
1、Postman应用程序将请求发送给代理服务器
2、系统代理服务器将请求发送到服务器
3、服务器通过代理服务器返回响应
注:
1、系统代理设置默认为开启状态, 任何通过Postman发出的任何请求都将通过系统代理
2、用户可以使用切换开关来打开和关闭此设置。 关闭时,所有请求都是直接发出,都不经过代理。 但是,无论应用程序中的代理设置如何,如果存在环境变量集,postman仍将使用系统代理
3、如果系统代理和自定义代理都打开,自定义代理将优先
生成代码片段
1、用户可以将通过Postman发送的请求转换成代码片段,然后集成到自己的应用程序中发出同样的请求
2、Postman允许用户生成各种语言的代码片段,用户需要单击"Send"按钮下的"Code"链接来打开生成代码片段窗口
注:
1、使用下拉菜单可选择生成的代码语言
2、点击"Copy to Clipboard"按钮,可将生成的代码复制到剪切板
拓展
通过Python实现请求
import requests
url = "https://accounts.douban.com/j/mobile/login/basic"
#payload = "ck=hDry&name=18380******&password=zh18380********&remember=false&ticket="
payload = {"ck":"hDry","name":"18380******","password":"zh18380********","remember":"false","ticket":""}
headers = {
'Content-Type': "application/x-www-form-urlencoded",
'cache-control': "no-cache",
'Postman-Token': "478fb6b3-97328-4a23d-8424-65e112345b4a"
}
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)