首页 > 编程语言 >python requests 上传文件

python requests 上传文件

时间:2022-11-23 22:32:03浏览次数:30  
标签:python request filename 参数 print requests 上传 response


起因

为了测试企业微信上传临时素材接口,我写了一段python脚本,使用的是requests 库,按照官方接口说明:

python requests 上传文件_python

 要构造相应表单的栏位,才能指定上传后文件的显示名称,于是我测试脚本如下:

python requests 上传文件_python_02

然而并没什么用,上传后还是会以原始文件命来命名。 为什么不行?研究一下

测试和分析

1.首先按下面的方式,不指定任何其它参数,打印出request,发现请求里的name和filename。

python requests 上传文件_表单_03

 2.扩展成 tuple 方式,指定filename,发现功改变了请求里的 filename 了,所以结论是 request库

会以 file 参数的结构来构造  name和filename 表单参数。

python requests 上传文件_python脚本_04

 测试代码如下:

with open(imagepath, 'rb') as f:
extname = os.path.splitext(imagepath)[-1]
#fs = {'name1':('filename1'+extname, f)}
fs = {'name1': f}
response = requests.post(url, files=fs)
print(response.request.body,response.request.headers)
# print(ret)
if response.status_code == 200:
retDict = response.json()
print(retDict)

 

因为以前一直也没仔细研究request库,只是拿来用过,趁碰到这个问题,打开它的定义文件里看了一下代码说明。

原来,所用的 post , get 等等方法,其着都是由 request  方法派生的,实际最终都是调用的request方法。

 

python requests 上传文件_python_05

其它着法其实也只是把参数带给 request方法,request方法的说明非常清晰。如下,关于files参数有几种结构形式。其它参数的说明看完也自然清楚了。

python requests 上传文件_python_06

 

 

 

标签:python,request,filename,参数,print,requests,上传,response
From: https://blog.51cto.com/fangkailove/5881795

相关文章