Python Requests库 form-data 上传文件操作

请求数据示例:

 1 ------WebKitFormBoundaryKLoWgrA4O40MayHM
 2 Content-Disposition: form-data; name="id"
 3 
 4 9
 5 ------WebKitFormBoundaryKLoWgrA4O40MayHM
 6 Content-Disposition: form-data; name="name"
 7 
 8 赵云
 9 ------WebKitFormBoundaryKLoWgrA4O40MayHM
10 Content-Disposition: form-data; name="tel"
11 
12 13212345678
13 ------WebKitFormBoundaryKLoWgrA4O40MayHM
14 Content-Disposition: form-data; name="school"
15 
16 西南科技大学
17 ------WebKitFormBoundaryKLoWgrA4O40MayHM
18 Content-Disposition: form-data; name="major"
19 
20 计算机
21 ------WebKitFormBoundaryKLoWgrA4O40MayHM
22 Content-Disposition: form-data; name="age"
23 
24 30
25 ------WebKitFormBoundaryKLoWgrA4O40MayHM
26 Content-Disposition: form-data; name="img"; filename="demo.jpg"
27 Content-Type: image/jpeg
28 
29 
30 ------WebKitFormBoundaryKLoWgrA4O40MayHM--

1.通过data参数和files参数发送请求

 1 import requests
 2 
 3 request_url = 'http://www.demo.com/studentInfo/saveNewInfo'
 4 # 构造字典,键值对方式传参
 5 request_data = {
 6     'id': '9',
 7     'name': '赵云',
 8     'tel':'13212345678',
 9     'school': '西南科技大学',
10     'major': '计算机',
11     'age': '30'
12 }
13 # 上传文件单独构造成以下形式
14 # 'img' 上传文件的键名
15 # 'demo' 上传到服务器的文件名,可以和上传的文件名不同
16 # open('D:/demo.jpg') 打开的文件对象,注意文件路径正确
17 # 'image/jpeg' Content-Type类型
18 request_file = {'img':(('demo',open('D:/demo.jpg')),'image/jpeg')}
19 
20 requests.post(url=request_url, data=request_data, files=request_file)    # url,data,files

2.仅通过files参数模拟文件发送请求

 1 import requests
 2 
 3 request_url = 'http://www.demo.com/studentInfo/saveNewInfo'
 4 # 构造字典,键值对方式传参
 5 # 不是文件的构造键值对,键值为一个元组形式,元组第0位为None,第1位为键值.
 6 request_files = {
 7     'id': (None, '9'),
 8     'name': (None, '赵云'),
 9     'tel':(None, '13212345678'),
10     'school': (None, '西南科技大学'),
11     'major': (None, '计算机'),
12     'age': (None, '30'),
13     'img':(('demo',open('D:/demo.jpg')),'image/jpeg')
14     # 'img':(None,'','image/jpeg')     不传文件的写法
15 }
16 
17 requests.post(url=request_url, files=request_files)        # url,files
posted @ 2020-07-23 23:27  number717  阅读(574)  评论(0)    收藏  举报