欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python requests完成接口文件上傳的案例

 更新時(shí)間:2021年03月12日 09:47:54   作者:華妹陀  
這篇文章主要介紹了python requests完成接口文件上傳的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

最近在準(zhǔn)備一個(gè)公開課,主題就是利用不同的語言和不同的工具去實(shí)現(xiàn)文件的上傳和下載。

在利用Jmeter去實(shí)現(xiàn)功能的時(shí)候,以及利用loadrunner去寫腳本的時(shí)候,都很順利,沒有任何問題,當(dāng)我嘗試用Python去解決這個(gè)問題的時(shí)候,花了一些時(shí)間。

這也讓我在學(xué)習(xí)和嘗試中,找到了很多樂趣,下面給大家分享下,如何去實(shí)現(xiàn)操作。

前提:

1:有一個(gè)上傳接口,地址如下:http://xx.xx.xx.xx//upload/stream(公司的服務(wù),地址不便外發(fā)~有興趣的同志可以來看我們的公開課!)

2:上傳接口的參數(shù)如下所示:

{"parentId":"","fileCategory":"personal","fileSize":179,"fileName":"summer_text_0920.txt","uoType":1}

其中有兩個(gè)參數(shù)需要跟大家解釋一下:filesize:指的是文件的字節(jié)大小。 filename:指的是你上傳之后保存的文件名~記得不要搞錯(cuò)了后綴喲。其他的參數(shù)可以忽略,在做自己公司接口的時(shí)候,就按照自己公司的接口文檔去做即可。

開始操作:

1:安裝requests模塊,安裝命令:pip install requests

2:發(fā)送請(qǐng)求,代碼如下所示:

header={"ct":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"}
files = {'file':open('D:\\test_data\\summer_test_data_05.txt','rb')}#此處是重點(diǎn)!我們操作文件上傳的時(shí)候,把目標(biāo)文件以open打開,然后存儲(chǔ)到變量file里面存到一個(gè)字典里面
upload_data={"parentId":"","fileCategory":"personal","fileSize":179,"fileName":"summer_text_0920.txt","uoType":1}
upload_res=requests.post(upload_url,upload_data,files=files,headers=header)##此處是重點(diǎn)!我們操作文件上傳的時(shí)候,接口請(qǐng)求參數(shù)直接存到upload_data變量里面,在請(qǐng)求的時(shí)候,直接作為數(shù)據(jù)傳遞過去

查看結(jié)果:

執(zhí)行完代碼后,看到我們上傳成功,效果如下:

大家如果有上傳文件的接口,趕緊去試試吧!

學(xué)習(xí)了代碼后,有些事情就會(huì)顯得輕松多啦!

補(bǔ)充:python實(shí)現(xiàn)接口上傳文件的兩種方法

文件上傳:上傳圖片的類型是file,這里沒有用到頭部信息

import requests
def sendImg(img_path, img_name, img_type='image/jpeg'):
 """
 :param img_path:圖片的路徑
 :param img_name:圖片的名稱
 :param img_type:圖片的類型,這里寫的是image/jpeg,也可以是png/jpg
 """
 url = 'https://www.xxxxxxxxxx.com' # 自己想要請(qǐng)求的接口地址
 
 with open(img_path + img_name, "rb")as f_abs:# 以2進(jìn)制方式打開圖片
 body = {
  # 有些上傳圖片時(shí)可能會(huì)有其他字段,比如圖片的時(shí)間什么的,這個(gè)根據(jù)自己的需要
  
  'camera_code': (None, "攝像頭1"), 
  
  'image_face': (img_name, f_abs, img_type)
  # 圖片的名稱、圖片的絕對(duì)路徑、圖片的類型(就是后綴)
  
  "time":(None, "2019-01-01 10:00:00")
  
  }
 # 上傳圖片的時(shí)候,不使用data和json,用files
 response = requests.post(url=url, files=body).json
 return response
 
if __name__=='__main__':
  # 上傳圖片
  res = sendImg(img_path, img_name)     # 調(diào)用sendImg方法
 print(res)
 
**如果上傳圖片是數(shù)組時(shí),value直接寫圖片路徑就可以**

文件上傳:上傳的類型是file,用到頭部信息

# "Content-Type": "multipart/form-data; boundary=76a22e30da2bb7790828887966871012"
from urllib3 import encode_multipart_formdata
import requests
def sendFile(filename, file_path):
 """
 :param filename:文件的名稱
 :param file_path:文件的絕對(duì)路徑
 """
 url = "https://www.xxxxxxx.com" # 請(qǐng)求的接口地址
  with open(file_path, mode="r", encoding="utf8")as f: # 打開文件
 file = {
  "file": (filename, f.read()),# 引號(hào)的file是接口的字段,后面的是文件的名稱、文件的內(nèi)容
  "key": "value", # 如果接口中有其他字段也可以加上
   } 
 
 encode_data = encode_multipart_formdata(file)
 
 file_data = encode_data[0] 
 # b'--c0c46a5929c2ce4c935c9cff85bf11d4\r\nContent-Disposition: form-data; name="file"; filename="1.txt"\r\nContent-Type: text/plain\r\n\r\n...........--c0c46a5929c2ce4c935c9cff85bf11d4--\r\n
 
 headers_from_data = {
   "Content-Type": encode_data[1], 
   "Authorization": token
    } 
 # token是登陸后給的值,如果你的接口中頭部不需要上傳字段,就不用寫,只要前面的就可以
 # 'Content-Type': 'multipart/form-data; boundary=c0c46a5929c2ce4c935c9cff85bf11d4',這里上傳文件用的是form-data,不能用json
 
 response = requests.post(url=url, headers=headers_from_data, data=file_data).json()
 return response
 
if __name__=='__main__':
  # 上傳文件
  res = sendFile(filename, file_path)     # 調(diào)用sendFile方法
 print(res) 

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • 淺析Python?WSGI的使用

    淺析Python?WSGI的使用

    WSGI也稱之為web服務(wù)器通用網(wǎng)關(guān)接口,全稱是web?server?gateway?interface。這篇文章主要為大家介紹了Python?WSGI的使用,希望對(duì)大家有所幫助
    2023-04-04
  • python中pow函數(shù)用法及功能說明

    python中pow函數(shù)用法及功能說明

    在本篇文章里小編給大家整理的是一篇關(guān)于python中pow函數(shù)用法及功能說明內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • python實(shí)現(xiàn)圖像處理之PiL依賴庫的案例應(yīng)用詳解

    python實(shí)現(xiàn)圖像處理之PiL依賴庫的案例應(yīng)用詳解

    這篇文章主要介紹了python實(shí)現(xiàn)圖像處理之PiL依賴庫的案例應(yīng)用詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • Python練習(xí)之制作企業(yè)獎(jiǎng)金計(jì)算器

    Python練習(xí)之制作企業(yè)獎(jiǎng)金計(jì)算器

    在本篇博客中,我們將使用Python代碼解決一個(gè)企業(yè)獎(jiǎng)金計(jì)算的問題,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-06-06
  • 詳談python3 numpy-loadtxt的編碼問題

    詳談python3 numpy-loadtxt的編碼問題

    下面小編就為大家分享一篇詳談python3 numpy-loadtxt的編碼問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 解決pytorch trainloader遇到的多進(jìn)程問題

    解決pytorch trainloader遇到的多進(jìn)程問題

    這篇文章主要介紹了解決pytorch trainloader遇到的多進(jìn)程問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python使用Selenium模塊實(shí)現(xiàn)模擬瀏覽器抓取淘寶商品美食信息功能示例

    Python使用Selenium模塊實(shí)現(xiàn)模擬瀏覽器抓取淘寶商品美食信息功能示例

    這篇文章主要介紹了Python使用Selenium模塊實(shí)現(xiàn)模擬瀏覽器抓取淘寶商品美食信息功能,涉及Python基于re模塊的正則匹配及selenium模塊的頁面抓取等相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • python實(shí)現(xiàn)excel轉(zhuǎn)置問題詳解

    python實(shí)現(xiàn)excel轉(zhuǎn)置問題詳解

    這篇文章主要介紹了python實(shí)現(xiàn)excel轉(zhuǎn)置問題詳解,excel轉(zhuǎn)置分為兩種情況,一個(gè)是較為簡(jiǎn)單的只需要行轉(zhuǎn)列,列轉(zhuǎn)行,具體詳解,感興趣的小伙伴可以參考一下
    2022-09-09
  • Python解決C盤卡頓問題及操作腳本示例

    Python解決C盤卡頓問題及操作腳本示例

    這篇文章主要為大家介紹了Python解決C盤卡頓問題腳本示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • python提效小工具之統(tǒng)計(jì)xmind用例數(shù)量(源碼)

    python提效小工具之統(tǒng)計(jì)xmind用例數(shù)量(源碼)

    這篇文章主要介紹了python提效小工具之統(tǒng)計(jì)xmind用例數(shù)量,利用python開發(fā)小工具,實(shí)現(xiàn)同一份xmind文件中一個(gè)或多個(gè)sheet頁的用例數(shù)量統(tǒng)計(jì)功能,需要的朋友可以參考下
    2022-10-10

最新評(píng)論