HTTP协议(9)Python requests模块的使用
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,通过Python中的requests模块也可以来发送HTTP请求,接收HTTP响应,从而实现一些更加灵活的操作。requests是第三方库,不过在Kali中已经自带了该模块。Python3和Pytho
千家信息网最后更新 2025年12月02日HTTP协议(9)Python requests模块的使用
通过Python中的requests模块也可以来发送HTTP请求,接收HTTP响应,从而实现一些更加灵活的操作。
requests是第三方库,不过在Kali中已经自带了该模块。Python3和Python2的用法稍微有些差别,这里先以Python2为例。
root@kali:~# python
Python 2.7.15 (default, Jul 28 2018, 11:29:29) [GCC 8.1.0] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> >>> import requests下面以之前做过的Bugku中的Get和Post方法两道题目为例,来介绍requests模块的用法。
1.Get请求
利用requests模块中的get方法,向目标url发送Get请求,将结果赋值给变量r1,直接查看r1的值,将显示状态码。查看text属性可以获得HTTP响应正文。通过print()函数输出,可以解析其中的换行符。
>>> r1=requests.get(url='http://123.206.87.240:8002/get/')>>> r1>>> r1.textu"$what=$_GET['what'];
\r\necho $what;
\r\nif($what=='flag')
\r\necho 'flag{****}';
\r\n\r\n\r\n">>> print(r1.text)$what=$_GET['what'];
echo $what;
if($what=='flag')
echo 'flag{****}';
下面发送带参数的Get请求,参数要以字典的形式表示:
>>> r1=requests.get(url='http://123.206.87.240:8002/get/',params={'what':'flag'})>>> print(r1.text)$what=$_GET['what'];
echo $what;
if($what=='flag')
echo 'flag{****}';
flagflag{bugku_get_su8kej2en}2.Post请求
仍是向目标url发送Post请求,并将结果存储在变量r2中:
>>> r2=requests.post(url='http://123.206.87.240:8002/post/')>>> print(r2.text)$what=$_POST['what'];
echo $what;
if($what=='flag')
echo 'flag{****}';
发送带参数的Post请求:
>>> r2=requests.post(url='http://123.206.87.240:8002/post/',data={'what':'flag'})>>> print(r2.text)$what=$_POST['what'];
echo $what;
if($what=='flag')
echo 'flag{****}';
flagflag{bugku_get_ssseint67se}3.查看报文头
查看headers属性可以获得响应头,可以看到响应头中的信息是以字典的形式存放:
>>> r1.headers{'Content-Encoding': 'gzip', 'Transfer-Encoding': 'chunked', 'Keep-Alive': 'timeout=60', 'Server': 'nginx', 'Connection': 'keep-alive', 'Date': 'Tue, 04 Dec 2018 23:12:33 GMT', 'Content-Type': 'text/html'}通过for循环对字典中的键进行遍历:
>>> for key in r1.headers:... print(key)... ServerDateContent-TypeTransfer-EncodingConnectionKeep-AliveContent-Encoding遍历键和值:
>>> for key in r1.headers:... print(key,r1.headers[key])... ('Server', 'nginx')('Date', 'Tue, 04 Dec 2018 23:12:33 GMT')('Content-Type', 'text/html')('Transfer-Encoding', 'chunked')('Connection', 'keep-alive')('Keep-Alive', 'timeout=60')('Content-Encoding', 'gzip')查看指定的键值:
>>> r1.headers['Server']'nginx'查看request.headers属性可以获得请求头:
>>> r1.request.headers{'Connection': 'keep-alive', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'User-Agent': 'python-requests/2.18.4'}
模块
参数
字典
属性
变量
形式
方法
目标
结果
信息
函数
差别
报文
换行符
正文
状态
第三方
题目
并将
存储
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
旧金山网络安全工作室
深圳软件开发排行
软件开发接口规范
数据库设计依据
网络安全 华东理工
网络安全宣传片视频学生
电视一直显示服务器连接失败
虎牙树叶玩原神是哪个服务器
网络安全方面做出了贡献
linux服务器新装机环境
网络安全法个人数据安全
计算机网络安全培训学校
如何搭建一个购物平台的服务器
天沃科技与工业互联网
广东软件开发具体地址
广州网络安全技术专业大学排名
二本大学计算机软件开发
王者游戏提示语音服务器未连接
远程办公怎么提高网络安全意识
智慧云平台投标客户端服务器地址
中国联通的网络安全
季节诗句数据库
济南微信公众号软件开发推荐
数字信息科技互联网之间的关系
中兴软件开发10k
网络安全部门岗位
数据库第一次查询很快后面很慢
网络技术发展阶段有几个
地平线4服务器
一加监视数据库