公司项目,不同操作用的都是同一个接口,用的识别码不同,所以做其他操作的时候,直接把识别码作为参数传入就可以,但是传递文件时,就会失败,在网上找了很多方法,都不行,最后还是试出来一种可靠的方式。
我传递的是图片的二进制文件,本地图片可以直接用from urllib import request
的request.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())
这就是详细的上传步骤
版权声明:本文为buling_me原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。