最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python如何使用requests提交post請求并上傳文件(multipart/form-data)

 更新時間:2023年11月10日 09:56:58   作者:zkkkkkkkkkkkkk  
這篇文章主要給大家介紹了關(guān)于python如何使用requests提交post請求并上傳文件(multipart/form-data)的相關(guān)資料,Python有許多庫支持,它們可以簡化HTTP上的數(shù)據(jù)傳輸,requests庫是最受歡迎的Python包之一,因為它在網(wǎng)絡(luò)刮削中被大量使用,需要的朋友可以參考下

一、背景

也是前幾天,有一個需求上傳文件需要自動化。具體是上傳到系統(tǒng)一個文件,并收到返回結(jié)果??紤]使用python的requests,一般這種查詢或上傳文件的接口都是post請求。所以就直接使用requests的post請求。但是在開發(fā)過程中,遇到一些問題需要注意。所以在此記錄一下。

二、請求接口上傳文件        

2.1、分析接口

首先瀏覽器f12查看接口內(nèi)容(主要看接口類型、請求頭、Payload)。發(fā)現(xiàn)上傳文件的接口是post類型,請求頭中Content-Type也很重要,指定內(nèi)容類型及請求體的一個分隔符。詳見下圖。

Payload里是接口的請求體,詳見下圖。接口參數(shù):type、orgType、file ,分別對應(yīng)下圖。其中,file的值為上傳的文件(轉(zhuǎn)換為二進制數(shù)據(jù))

對應(yīng)參數(shù)的請求內(nèi)容,其中------WebKitFormBoundary5rEpBecoRZ2tj60k為分割符,每個兩個分割符之前對于一個參數(shù)。

2.2、python進行請求

# 請求頭
'''
    這里注意,要將Content-Type注釋掉。因為在請求的時候,會自動加上。
'''
header = {
    'Authorization': '1677034306556',
    'Connection': 'keep-alive',
    # 'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryFXTT4S1LKA1LUDBd',
    'Cookie': 'SHIROJSESSIONID=75ace860-0f00-4db0-9440-6c6d53cdf101',
    'Host': 'host:8088',
    'Origin': 'http://host:8088',
    'Referer': 'http://host:8088/njfxq/search/clue/clueFeedBackDetailAll?id=1574192996457648130&Paramspage=clue&caseId=1567439544410976257',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
}
# 請求體Payload
'''
    這里有必要解釋下:
    如果請求體按照頁面顯示的配置如下:
        fileObject = {
            'type':'6',
            'orgType': 'B',
            'file': open('上傳文件.xlsx','rb')
        }
    是錯誤的(第一次花費半天才調(diào)通)
    //
    正確的格式應(yīng)該是傳入一個元組,格式為:(<fileName>,<fileObject>,<Content-Type>) ,這里的fileObject是指具體的值。
    正確的請求體應(yīng)為:
        fileObject = {
            'type':(None,'6',None),
            'orgType': (None,'B',None),
            'file': ('上傳文件.xlsx',open('上傳文件.xlsx','rb'),'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
        }
'''
fileObject = {
    'type':(None,'6',None),
    'orgType': (None,'B',None),
    'file': ('上傳文件.xlsx',open('上傳文件.xlsx','rb'),'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
}
req = requests.post('http://host:8088/njfxq/finance/investigatefeedback/uploadFile',headers=header,files=fileObject)
print(req.text)

三、總結(jié)

Payload請求體如何轉(zhuǎn)換的問題,看下圖應(yīng)該比較容易理解。

# 下面為補充后的Payload
------WebKitFormBoundarynS4EDa2hdT8tfnF8
Content-Disposition: form-data; name="type"; filename=None
content-type: None
 
fileObject
------WebKitFormBoundarynS4EDa2hdT8tfnF8
Content-Disposition: form-data; name="orgType"; filename=None
content-type: None
 
fileObject
------WebKitFormBoundarynS4EDa2hdT8tfnF8
Content-Disposition: form-data; name="file"; filename="樣本標簽.xlsx"
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet    
 
fileObject     # 為文件的二進制數(shù)據(jù) 
------WebKitFormBoundarynS4EDa2hdT8tfnF8--
 
# 轉(zhuǎn)換為python的請求格式
格式為:'name':(<fileName>,<fileObject>,<Content-Type>)
 
# 對比如下
fileObject = {
    'type':(None,'6',None),
    'orgType': (None,'B',None),
    'file': ('上傳文件.xlsx',open('上傳文件.xlsx','rb'),'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
}

總結(jié)

到此這篇關(guān)于python如何使用requests提交post請求并上傳文件的文章就介紹到這了,更多相關(guān)python提交post請求上傳文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PYTHON如何讀取和寫入EXCEL里面的數(shù)據(jù)

    PYTHON如何讀取和寫入EXCEL里面的數(shù)據(jù)

    這篇文章主要介紹了PYTHON如何讀取和寫入EXCEL里面的數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • Python的psutil模塊詳解

    Python的psutil模塊詳解

    psutil是一個跨平臺庫,能夠輕松實現(xiàn)獲取系統(tǒng)運行的進程和系統(tǒng)利用率(包括CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等)信息,需要的朋友可以參考下
    2023-05-05
  • 用Python的Turtle制作自己的星空

    用Python的Turtle制作自己的星空

    這篇文章主要介紹了用Python的Turtle制作自己的星空,本文用了turtle繪圖包,是一款非常強大的內(nèi)置包,需要的朋友可以參考下
    2023-04-04
  • Python反射的用法實例分析

    Python反射的用法實例分析

    這篇文章主要介紹了Python反射的用法,結(jié)合實例形式分析了Python反射機制所涉及的幾個常用方法與相關(guān)使用技巧,需要的朋友可以參考下
    2018-02-02
  • python如何導(dǎo)入自己的模塊

    python如何導(dǎo)入自己的模塊

    這篇文章主要介紹了python如何導(dǎo)入自己的模塊,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Python生成隨機數(shù)的多種方法

    Python生成隨機數(shù)的多種方法

    Python生成隨機數(shù)主要通過random、secrets和numpy.random模塊實現(xiàn),random適用于日常場景,secrets確保密碼學(xué)安全,numpy.random適合科學(xué)計算,了解各模塊功能和示例代碼,可以幫助你根據(jù)需求選擇合適的生成方法,需要的朋友可以參考下
    2026-04-04
  • Python+Django在windows下的開發(fā)環(huán)境配置圖解

    Python+Django在windows下的開發(fā)環(huán)境配置圖解

    Python+Django在windows下的開發(fā)環(huán)境配置圖解教程,需要的朋友可以參考下。
    2009-11-11
  • Python中斷言Assertion的一些改進方案

    Python中斷言Assertion的一些改進方案

    python中的斷言Assertion使用起來很方便,但是也不盡如人意的地方,所以這篇文章通過幾個方面對Python中的斷言進行了改進,感興趣的朋友們可以參考借鑒,下面來一起看看吧。
    2016-10-10
  • python政策網(wǎng)字體反爬實例(附完整代碼)

    python政策網(wǎng)字體反爬實例(附完整代碼)

    大家好,本篇文章主要講的是python政策網(wǎng)字體反爬實例(附完整代碼),感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • pip install過程中出現(xiàn)error: subprocess-exited-with-error錯誤的解決辦法

    pip install過程中出現(xiàn)error: subprocess-exited-with-erro

    在Python環(huán)境配置過程中,經(jīng)常會遇到各種安裝錯誤,其中一個常見的錯誤是 pip install 過程中出現(xiàn)的 error: subprocess-exited-with-error,在本文中,我將詳細解析這個錯誤的原因,并提供具體的解決方案和步驟,確保大家能夠順利完成安裝,避免類似問題的再次發(fā)生
    2024-07-07

最新評論

富裕县| 宁武县| 平陆县| 东乡县| 长宁区| 湖北省| 玛纳斯县| 三江| 南昌市| 孝义市| 南康市| 砚山县| 白水县| 乐安县| 连州市| 神池县| 逊克县| 乐都县| 凌云县| 健康| 厦门市| 垫江县| 石嘴山市| 镇赉县| 德惠市| 锡林郭勒盟| 晴隆县| 桂平市| 兴仁县| 阜南县| 司法| 克拉玛依市| 简阳市| 德兴市| 林周县| 库尔勒市| 新民市| 万源市| 电白县| 泰和县| 镇江市|