HTTP协议(9)Python requests模块的使用
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,通过Python中的requests模块也可以来发送HTTP请求,接收HTTP响应,从而实现一些更加灵活的操作。requests是第三方库,不过在Kali中已经自带了该模块。Python3和Pytho
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
湖北九亚互联网络科技有限公司
重生之互联网科技帝国
国智互联网科技
科技和互联网公司
互联网和科技创新
科技企业和互联网企业
深圳互联网科技公司
互联网金融科技创新
未来的互联网科技
奇士达互联网科技
佩信高科技互联网
青海省互联网新科技
银川新华互联网科技学校地址
福州新华互联网科技学校 知乎
团飞科技与伯堂互联网服务平台
银川新华互联网科技职业技术培训学校图片
互联网科技项目计划书材料类
工业互联网等科技实现智能化赋能
四川互联网展示科技馆设计
上海乐五互联网科技有限公司
互联网科技网
互联网 科技创新
互联网科技logo
上游互联网科技
互联网科技公司介绍
国外互联网科技网站
重庆科技学院互联网
深圳市运趣互联网科技有限公司
科技大学互联网
互联网金融科技公司的优势