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

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 requests
 
url = "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 requests
 
url = "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 requests
 
url = '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 requests

headers = {
    '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.kler.cn/news/107037.html

相关文章:

  • 智能直播,助力新营销战场 !降本增效,新消费市场唾手可得
  • LaTeX:在标题section中添加脚注footnote
  • Win10中Pro/E鼠标滚轮不能缩放该怎么办?
  • 22 行为型模式-状态模式
  • python:使用Scikit-image对遥感影像进行形态学轮廓特征提取(contour)
  • kafka入门03——简单实战
  • 负载均衡策略 LVS
  • 云服务器的先驱,亚马逊云科技海外云服务器领军者
  • 【Java题】输出基本数据类型的最大值和最小值,以及float和double的正无穷大值和负无穷大值
  • NodeJS爬取墨刀上的设计图片
  • 【密评】商用密码应用安全性评估从业人员考核题库(十五)
  • 视频剪辑高手必学:批量制作画中画效果的秘诀
  • arduino抢答器
  • 【java】建筑施工一体化智慧工地信息管理系统源码
  • AutoCAD 2024 Mac中文附激活补丁 兼容M1.M2电脑
  • 竞赛选题 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序
  • 大厂面试题-JVM中的三色标记法是什么?
  • JVM 参数
  • 分治算法解决归并排序问题
  • 【ROS入门】雷达、摄像头及kinect信息仿真以及显示
  • 前端的基本介绍
  • 5.MySQL基本查询
  • 智慧垃圾站:AI视频智能识别技术助力智慧环保项目,以“智”替人强监管
  • MongoDB 的集群架构与设计
  • Angular-03:组件模板
  • 如何在 uniapp 里面使用 pinia 数据持久化 (pinia-plugin-persistedstate)
  • 关于路由转发
  • Mysql binlog日志功能使用,简单易懂
  • centos更改yum源
  • 2023大湾区杯粤港澳金融数学建模竞赛思路+模型+代码