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
浙公网安备 33010602011771号