Python Requests庫實現本上傳文件操作


 

一、接口信息

POST http://172.16.11.221:8080/EasyBuy/admin/product?action=addProduct HTTP/1.1
Host: 172.16.11.221:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------172115127626670594683299562332
Content-Length: 1210
Origin: http://172.16.11.221:8080
DNT: 1
Connection: keep-alive
Referer: http://172.16.11.221:8080/EasyBuy/admin/product?action=toAddProduct
Cookie: JSESSIONID=17D011BBCF07CCE19FEF9C0584A6EBAB
Upgrade-Insecure-Requests: 1

提交的multipart/form-data數據:

二、實現方式

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

import requests

#使用Session方法,持久保持會話
session = requests.Session()

#打開首頁請求
session.get("http://172.16.11.221:8080/EasyBuy/Home?action=index")

#用戶登錄請求
url = "http://172.16.11.221:8080/EasyBuy/Login"
headers = {
    'Content-Type': 'application/x-www-form-urlencoded',
    'charset': 'UTF-8'
}
payload = {
    'loginName': 'admin',
    'password': '123456',
    'action': 'login'
}
session.post(url, data=payload, headers=headers)


#上傳商品信息文件
url = 'http://172.16.11.221:8080/EasyBuy/admin/product?action=addProduct'

#構成字典,鍵值對方式傳參
payload = {
    "categoryLevel1Id":'548',
    "categoryLevel2Id":'654',
    "categoryLevel3Id":'655',
    "id": "",
    "name": '護手霜',
    "price": '123',
    "stock": '100000',
    "description": 'BB護手霜'
}
#上傳文件單獨構造以一下形式,“photo”上傳文件的鍵名,'hello.jpg'上傳到服務器的文件名, open('D:/hello.jpg','rb')打開文件對象注意要使用二進制,'image/jpeg'Content-Type類型
file = {
    'photo': ('hello.jpg', open('D:/hello.jpg','rb'),'image/jpeg')
}
session.post(url, data=payload, files=file)

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

url = 'http://172.16.11.221:8080/EasyBuy/admin/product?action=addProduct'

# 構造字典,鍵值對方式傳參,類型不是文件的構造鍵值對,鍵值為一個元組形式,元組第0位為None,第1位為鍵值.
file = {
    "categoryLevel1Id": (None, '548'),
    "categoryLevel2Id": (None, '654'),
    "categoryLevel3Id": (None, '655'),
    "id": (None, ""),
    "name": (None, '護手霜'),
    "price": (None, '1279'),
    "stock": (None, '100000'),
    "description": (None, '效果好,各方面比較好'),
    'photo': ('hello.jpg', open('D:/hello.jpg', 'rb'), 'image/jpeg')
}

session.post(url,data=payload, files=file)


免責聲明!

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



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