python requests 上传文件_python使用request库发送上传zip文件的post请求

使用工具:

python(2.7)

requests(2.18.4)

zip文件一个

chrome浏览器

第一步,通过chrome浏览器的开发者工具,获得发送的参数。

www.yinyubo.cn

www.yinyubo.cn

第二步,编写python代码

使用request库的post方法。注意的是要添加files参数,例如:

Python

files ={'app_filename':open('portal-1.0-SNAPSHOT-fat.jar.zip','rb')}

1

files={'app_filename':open('portal-1.0-SNAPSHOT-fat.jar.zip','rb')}

其中,’app_filename’是F12工具里抓出来的from data里的标有{binary}这一行的参数名。

portal-1.0-SNAPSHOT-fat.jar.zip是我自己电脑本地的一个zip文件。

rb是读二进制文件。因为这个form data是以二进制形式上传文件的

其余的常规参数,放到data参数里。例如上图的image_name:fff就是常规参数。

在header里注意添加cookies值或者Authorization值,这里我测试的网站用的是Authorization。如果没有该参数,会返回401

完整python request体参数如下:

Python

path = os.path.split(os.path.realpath(__file__))[0]

url = host + '/dashboard/cicd/images'

headers = {

'Authorization':'6bae7b70-8dae-4f74-9631-680b9501b52',

'cookie': "_ga=GA1.3.733851079.1534745675; Hm_lvt_dde6ba2851f3db0ddc415ce0f895822e=1537859803; _ga=GA1.3.733851079.1534745675; Hm_lvt_dde6ba2851f3db0ddc415ce0f895822e=1537859803",

}

datat = {'image_name': 'abcd',

'image_description': 'ccccvcc',

'image_label': '1cc1fcc',

'basic_image': 'openjdk:10',

'store_path': '/opt/app/lzw/'}

files = {'app_filename': (

'portal-1.0-SNAPSHOT-fat.jar.zip', open(os.path.join(path, 'portal-1.0-SNAPSHOT-fat.jar.zip'), 'rb'),

'application/x-zip-compressed')}

# files ={'app_filename':open('portal-1.0-SNAPSHOT-fat.jar.zip','rb')} 和上面的功能一样

result = requests.post(url, files=files, data=datat, headers=headers)

r1 = result.text

print(result.text)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

path=os.path.split(os.path.realpath(__file__))[0]

url=host+'/dashboard/cicd/images'

headers={

'Authorization':'6bae7b70-8dae-4f74-9631-680b9501b52',

'cookie':"_ga=GA1.3.733851079.1534745675; Hm_lvt_dde6ba2851f3db0ddc415ce0f895822e=1537859803; _ga=GA1.3.733851079.1534745675; Hm_lvt_dde6ba2851f3db0ddc415ce0f895822e=1537859803",

}

datat={'image_name':'abcd',

'image_description':'ccccvcc',

'image_label':'1cc1fcc',

'basic_image':'openjdk:10',

'store_path':'/opt/app/lzw/'}

files={'app_filename':(

'portal-1.0-SNAPSHOT-fat.jar.zip',open(os.path.join(path,'portal-1.0-SNAPSHOT-fat.jar.zip'),'rb'),

'application/x-zip-compressed')}

# files ={'app_filename':open('portal-1.0-SNAPSHOT-fat.jar.zip','rb')} 和上面的功能一样

result=requests.post(url,files=files,data=datat,headers=headers)

r1=result.text

print(result.text)

注意:千万不要在head里加入 ‘Content-Type’:’multipart/form-data;参数。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值