用From-data传递文件和附加参数

本文介绍了在Python项目中如何通过From-data方式上传文件并附加识别码等参数。当普通方式传递文件失败时,作者提供了一种可靠的方法。内容包括设置请求头、构造请求数据以及上传文件的具体步骤,特别是对于二进制文件的处理方式。最后,通过检查响应状态和信息确保上传成功。

公司项目,不同操作用的都是同一个接口,用的识别码不同,所以做其他操作的时候,直接把识别码作为参数传入就可以,但是传递文件时,就会失败,在网上找了很多方法,都不行,最后还是试出来一种可靠的方式。

我传递的是图片的二进制文件,本地图片可以直接用from urllib import requestrequest.urlopen('path').read()来获取图片的二进制文件,如果是url文件,将path改为url地址即可。

请求过程

请求头

headers = {
         'User-Agent':’xxxx‘ ,
         'cookie':'根据实际情况' ,
         'Content-Type': 'multipart/form-data'  
         }

如果上传失败,可以尝试注释掉 'Content-Type': 'multipart/form-data'

请求数据

request_data = { 'key': 'value' }

写上自己需要传递的值

上传文件
上传文件单独构造成以下形式
# ‘image’ 上传文件的键名
# ‘135.png’ 上传到目的地的文件名,可以和上传的文件名不同
# open(‘135.png’,‘rb’) 打开的文件对象,注意文件路径正确
# ‘image/png’ Content-Type类型

  request_file = {'image': (image)}

因为我上传的是二进制文件 ,所以多余的参数都没有写,只有键和文件内容,完整的写法是

  request_file = {'image': (image,'135.png'),open('135.png','rb',image/png)}

大概是这样,有不对的就换一下括号的位置,具体记不清了,可能会有出入。

最后发出请求

upload_resp = requests.post(url=upload_url, data=request_data, files=request_file, headers=headers)

查看响应状态 print(upload_resp.status.code)
查看响应信息 print(upload_resp.json())

这就是详细的上传步骤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值