請求數據示例:
------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