Python Requests庫 form-data 上傳文件操作


請求數據示例:

------WebKitFormBoundaryKLoWgrA4O40MayHM
Content-Disposition: form-data; name="id"

9
------WebKitFormBoundaryKLoWgrA4O40MayHM
Content-Disposition: form-data; name="name"

趙雲
------WebKitFormBoundaryKLoWgrA4O40MayHM
Content-Disposition: form-data; name="tel"

13212345678
------WebKitFormBoundaryKLoWgrA4O40MayHM
Content-Disposition: form-data; name="school"

西南科技大學
------WebKitFormBoundaryKLoWgrA4O40MayHM
Content-Disposition: form-data; name="major"

計算機
------WebKitFormBoundaryKLoWgrA4O40MayHM
Content-Disposition: form-data; name="age"

30
------WebKitFormBoundaryKLoWgrA4O40MayHM
Content-Disposition: form-data; name="img"; filename="demo.jpg"
Content-Type: image/jpeg


------WebKitFormBoundaryKLoWgrA4O40MayHM--

1.通過data參數和files參數發送請求

import requests

request_url = 'http://www.demo.com/studentInfo/saveNewInfo'
# 構造字典,鍵值對方式傳參
request_data = {
    'id': '9',
    'name': '趙雲',
    'tel':'13212345678',
    'school': '西南科技大學',
    'major': '計算機',
    'age': '30'
}
# 上傳文件單獨構造成以下形式
# 'img' 上傳文件的鍵名
# 'demo' 上傳到服務器的文件名,可以和上傳的文件名不同
# open('D:/demo.jpg') 打開的文件對象,注意文件路徑正確
# 'image/jpeg' Content-Type類型
request_file = {'img':(('demo',open('D:/demo.jpg')),'image/jpeg')}

requests.post(url=request_url, data=request_data, files=request_file)	# url,data,files

2.僅通過files參數模擬文件發送請求

import requests

request_url = 'http://www.demo.com/studentInfo/saveNewInfo'
# 構造字典,鍵值對方式傳參
# 不是文件的構造鍵值對,鍵值為一個元組形式,元組第0位為None,第1位為鍵值.
request_files = {
    'id': (None, '9'),
    'name': (None, '趙雲'),
    'tel':(None, '13212345678'),
    'school': (None, '西南科技大學'),
    'major': (None, '計算機'),
    'age': (None, '30'),
    'img':(('demo',open('D:/demo.jpg')),'image/jpeg')
    # 'img':(None,'','image/jpeg')	 不傳文件的寫法
}

requests.post(url=request_url, files=request_files)		# url,files


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM