当前位置: 首页 > news >正文

requests 实践

Requests 常用参数

method: 请求方式 get,或者 post,put,delete 等
url : 请求的 url 地址 接口文档标注的接口请求地址
params:请求数据中的链接,常见的一个 get 请求,请求参数都是在 url 地址中
data :请求数据,参数 表单的数据格式
json: 接口常见的数据请求格式
headers:请求头信息,http 请求中,比如说编码方式,token等内容添加
cookie:保存的用户登录信息,比如做一些充值功能,但是需要用户已经登录,需要 cookie 信息的请求信息传输
file:接口中上传文件
timeout :超时处理 proxys 设置代理
stream :文件下载功能,通过请求方式,下载文件

Requests 响应内容

r.encoding #获取当前的编码
r.encoding = ‘utf-8’ #设置编码
r.text #以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
r.cookies #返回cookie
r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
r.status_code #响应状态码
r.json() #Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常
r.content #以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。

Post 请求

# 导入requests包
import requestsurl = "http://localhost:65375/Login/Demo"
mydata = {"BanJName": str(vido_me), "NianJiBH": "112", "BianHao": "11", "ZuZhi": "123"}  # 字典格式,推荐使用,它会自动帮你按照k-v拼接url
res = requests.post(url=url, data=mydata)print('url:', res.request.body)  # 查看发送的url
print("response:", res.text)  # 返回请求结果

Get 请求

# 导入requests包
import requestsurl = "http://www.tuling123.com/openapi/api"
myParams = {"key":"username","info":"plusroax"} # 字典格式,推荐使用,它会自动帮你按照k-v拼接url
res = requests.get(url=url, params=myParams)print('url:',res.request.url)# 查看发送的url
print("response:",res.text)  # 返回请求结果

Https 请求

当协议是 https 的协议的时候,有些系统,需要校验 https 证书,如果校验失败,可能会有警告提示等信息。

import requests 
url="https://www.ctrip.com/" 
# 解决方案 
# 发送请求时候忽略证书,证书的参数 verify-用的比较多 
r=requests.get(url=url,verify=False) #verify 参数默认为 True,值为 False 表示忽略证书 
print (r.text) 
#第二种解决方案,verify 里面添加证书的路径 
r=requests.get(url=url,verify='证书的路径') 
print (r.text)

上传文件

import requestsurl = 'https://127.0.0.1:8000/UploadPhoto'  
#filename 为 liang.jpg 文件
#open('D:\\test_data\\liang.jpg','rb') 打开本地的一个文件 
files = {'file':open('D:\\test_data\\liang.jpg','rb')}
r=requests.post(url=url,files=files,verify=False) 
print (r.text)

Requests 中 timeout 参数

1、python 的requests请求都可以使用timeout参数。
2、timeout参数可以传入一个简单的浮点数,它将请求的连接部分和读取部分设为相同的超时时间。
3、timeout参数也可以传入一个包含两个简单浮点数的元组,用来分别设置请求超时时间和读取超时时间。
4、参数值设为None或者不设置该参数为一直等待,知道请求成功或错误

url = "http://127.0.0.1:66753/login"
# 表单数据格式,参数 data ,数据都是字典去保存
data = {"username": "liang001", "password": "123456"}
r_login = requests.post(url=url, json=data, timeout=0.5)
print(r_login.text)

访问需要登录的界面

# 导入requests包
import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0'
}
session = requests.session()
# 1.代码登录
login_url = url
login_form_data = {'UserName': name, # 登录用户名'PassWord': pwd,  # 登录密码}
login_resopnse = session.post(login_url, data=login_form_data, headers=headers)
# 2.登录成功后,带着有效的cookie访问member_url
files = {'file': open(r'路径', 'rb')}
member_url = 'url'
member_data = session.post(member_url, headers=headers, files=files)print(member_data.text)

参考:
https://blog.csdn.net/qq_53193143/article/details/128240019

http://www.lryc.cn/news/207883.html

相关文章:

  • UI设计公司成长日记2:修身及持之以恒不断学习是要务
  • 辅助驾驶功能开发-功能规范篇(23)-2-Mobileye NOP功能规范
  • React中如何提高组件的渲染效率
  • springboot+mybatis3.5.2动态查询某一字段在某一段时间内的统计信息(折线图)
  • 关于本地项目上传到gitee的详细流程
  • MarkDown详细入门笔记
  • 算法——贪心算法
  • 102.linux5.15.198 编译 firefly-rk3399(1)
  • 易点易动固定资产管理系统:多种盘点方式助力年终固定资产盘点
  • C# Winform编程(10)Chart图表控件
  • 群狼调研(长沙产品概念测试)|如何做新品上市满意度调研
  • Lua与C++交互
  • Ubuntu安装pyenv,配置虚拟环境
  • 【分布式技术专题】「分布式技术架构」MySQL数据同步到Elasticsearch之N种方案解析,实现高效数据同步
  • 什么是React中的高阶组件(Higher Order Component,HOC)?它的作用是什么?
  • NEFU离散数学实验3-递推方程
  • 如何为你的地图数据设置地图样式?
  • 解决visual studio Just-In-Time Debugger调试
  • Uservue 中 keep-alive 组件的作用
  • gitlab查看、修改用户和邮箱,gitlab生成密钥
  • python操作MySQL、SQL注入问题、视图、触发器、事务、存储过程、函数、流程控制、索引(重点)
  • 这一年的资源
  • 从【臀部监控】到【电脑监控软件】,企业如何在隐私权与管理权博弈中找到平衡
  • 数据库简介和sqlite3安装
  • 颈肩肌筋膜炎做什么检查
  • django建站过程(3)定义模型与管理页
  • node开发微信群聊机器人第⑤章
  • 如何助力企业出海?未来发展趋势是什么?尽在「云通信」Tech专场
  • 安装虚拟机(VMware)保姆级教程及配置虚拟网络编辑器和安装WindowsServer以及本地访问虚拟机和配置服务器环境
  • 使用Typecho搭建个人博客网站,并内网穿透实现公网访问