requests---requests上传图片
2024-09-03 05:11:25
我们在做接口测试的时候肯定会遇到一些上传图片,然后进行校验,今天我们一起学习通过requests上传图片,查看是否上传成功
抓取上传接口
这里我以百度为例子进行操作,为啥要用百度呢,主要上传文件比较简单不用登录啥的~~~通过fiddler抓取上传图片的接口地址以及请求携带的参数内容
通过下面操作进行选择图片进行上传,然后通过fiddler进行分析接口内容
通过分析抓取的内容,我们可以看到接口地址为:“https://graph.baidu.com/upload”
请求的参数类型为from-data,这个类型后面会具体的介绍,这里先不具体说了,这里不影响我们操作
参数格式
这里在插个知识点,就是requests文档中有对上传文件单独书写,我们可以按照他们的标准进行书写详细的可以进行查看requests官方文档
参数书写情况为:
# 123.jpg为图片,与代码在当前目录下,image/jpeg 为图片格式
files = {
"tn":"pc",
"image":("123.jpg",open('123.jpg','rb'),"image/jpeg"),
"from":"pc",
"image_source":"PC_UPLOAD_SEARCH_FILE",
"range":'{"page_from": "searchIndex"}'
}
请求上传图片
选择图片
# coding:utf-8
import requests
url = "https://graph.baidu.com/upload"
files = {
"tn":"pc",
"image":("123.jpg",open('123.jpg','rb'),"image/jpeg"),
"from":"pc",
"image_source":"PC_UPLOAD_SEARCH_FILE",
"range":'{"page_from": "searchIndex"}'
}
r = requests.post(url,files=files)
print(r.json())
通过查看返回,点击链接进入到百度识图中
但是当我们点击进去后会发现浏览器好像放大了我们的页面一样,这是什么鬼?哪里出错误了吗?
原来是我们在填写数据的时候数据的格式写错了,有一些参数没有添加,我们要表示为None
# 每个value其实都是有2个参数,只是其中一个没有,那么如果我们不穿的话就会出现刚才的问题,这个是需要传None
files = {
"tn":(None,"pc"),
"image":("123.jpg",open('123.jpg','rb'),"image/jpeg"),
"from":(None,"pc"),
"image_source":(None,"PC_UPLOAD_SEARCH_FILE"),
"range":(None,'{"page_from": "searchIndex"}')
}
通过修改后的链接,我们再一次取请求,查看这次的情况,发现是好的,突然感叹到python太强大了~~
通过一个小的例子,我们学习了如何通过requests发送from-data的数据类型,但是如果想要上传大文件,需要安装第3方库,这个我们下次在一起学习~~~持续更新中~~~
如果感觉写的对您有帮助,可以右下角点击个关注哦~~点关注,不迷路。
最新文章
- Javascript数组操作(转)
- 前端弹出对话框 js实现 ajax交互
- Netty学习一:基本知识
- 在Ubuntu14.04下安装vsftp服务器
- 怎样关闭google的自动更新
- BestCoder Round #87 1001
- NOIP2013普及组 T2 表达式求值
- CSS hack常用方案(摘选)
- Migration of ASP.NET app from IIS6 to IIS7 (7.5)
- 强制杀oracle进程
- MongoDB入门命令
- .Net Core MongoDB 简单操作。
- React Suite v3.0 正式版发布
- SpringMVC+GSON 对象序列化--日期格式的处理
- TiDB 架构及设计实现
- Docker使用Link与newwork在容器之间建立连接
- 路由表flags的U值引起的能ping通网关,ping不通其它网段的案例
- cordova打包webapp
- EBS测试环境DataGuard配置
- CSS属性大全
热门文章
- UWP GridView切换数据时界面闪动
- C# 打开文件/跳转链接
- How to: Implement a Custom Base Persistent Class 如何:实现自定义持久化基类
- SAP用户角色分配函数权限
- SQL Server启动/关闭xp_cmdshell
- Viewpager+Fragment 跳转Activity报错android.os.TransactionTooLargeException: data parcel size xxxxx bytes
- vmware vsphere client 虚拟机动态添加磁盘
- 数据库迁移导致Unknown character set: 'GBK' 应用异常
- python 爬虫 随机换user-agent
- 一天两道pat(3)1007,1008