校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > python requests完成接口文件上傳的案例

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

熱門標簽:南京crm外呼系統排名 crm電銷機器人 云南地圖標注 北京外呼電銷機器人招商 賓館能在百度地圖標注嗎 400電話 申請 條件 電銷機器人 金倫通信 鄭州智能外呼系統中心 汕頭電商外呼系統供應商

最近在準備一個公開課,主題就是利用不同的語言和不同的工具去實現文件的上傳和下載。

在利用Jmeter去實現功能的時候,以及利用loadrunner去寫腳本的時候,都很順利,沒有任何問題,當我嘗試用Python去解決這個問題的時候,花了一些時間。

這也讓我在學習和嘗試中,找到了很多樂趣,下面給大家分享下,如何去實現操作。

前提:

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

2:上傳接口的參數如下所示:

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

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

開始操作:

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

2:發送請求,代碼如下所示:

header={"ct":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"}
files = {'file':open('D:\\test_data\\summer_test_data_05.txt','rb')}#此處是重點!我們操作文件上傳的時候,把目標文件以open打開,然后存儲到變量file里面存到一個字典里面
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)##此處是重點!我們操作文件上傳的時候,接口請求參數直接存到upload_data變量里面,在請求的時候,直接作為數據傳遞過去

查看結果:

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

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

學習了代碼后,有些事情就會顯得輕松多啦!

補充:python實現接口上傳文件的兩種方法

文件上傳:上傳圖片的類型是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' # 自己想要請求的接口地址
 
 with open(img_path + img_name, "rb")as f_abs:# 以2進制方式打開圖片
 body = {
  # 有些上傳圖片時可能會有其他字段,比如圖片的時間什么的,這個根據自己的需要
  
  'camera_code': (None, "攝像頭1"), 
  
  'image_face': (img_name, f_abs, img_type)
  # 圖片的名稱、圖片的絕對路徑、圖片的類型(就是后綴)
  
  "time":(None, "2019-01-01 10:00:00")
  
  }
 # 上傳圖片的時候,不使用data和json,用files
 response = requests.post(url=url, files=body).json
 return response
 
if __name__=='__main__':
  # 上傳圖片
  res = sendImg(img_path, img_name)     # 調用sendImg方法
 print(res)
 
**如果上傳圖片是數組時,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:文件的絕對路徑
 """
 url = "https://www.xxxxxxx.com" # 請求的接口地址
  with open(file_path, mode="r", encoding="utf8")as f: # 打開文件
 file = {
  "file": (filename, f.read()),# 引號的file是接口的字段,后面的是文件的名稱、文件的內容
  "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)     # 調用sendFile方法
 print(res) 

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • python爬蟲之利用Selenium+Requests爬取拉勾網
  • Python requests timeout的設置
  • python+requests+pytest接口自動化的實現示例
  • python3 解決requests出錯重試的問題
  • Python requests庫參數提交的注意事項總結
  • python urllib.request模塊的使用詳解
  • python爬取豆瓣電影排行榜(requests)的示例代碼
  • requests在python中發送請求的實例講解
  • python 實現Requests發送帶cookies的請求
  • python軟件測試Jmeter性能測試JDBC Request(結合數據庫)的使用詳解
  • python requests庫的使用
  • python實現文件+參數發送request的實例代碼
  • Python爬蟲基礎之requestes模塊

標簽:石家莊 梅州 懷化 文山 錫林郭勒盟 昆明 浙江 西寧

巨人網絡通訊聲明:本文標題《python requests完成接口文件上傳的案例》,本文關鍵詞  python,requests,完成,接口,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python requests完成接口文件上傳的案例》相關的同類信息!
  • 本頁收集關于python requests完成接口文件上傳的案例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 昭苏县| 巴塘县| 全州县| 邵阳县| 崇左市| 乌拉特中旗| 平谷区| 河津市| 桃源县| 长泰县| 康定县| 宁晋县| 吉木萨尔县| 中卫市| 汝州市| 太仓市| 屏东县| 南开区| 建昌县| 府谷县| 普定县| 柯坪县| 拜泉县| 蚌埠市| 枣庄市| 奎屯市| 响水县| 平昌县| 大厂| 黎川县| 阜新市| 海宁市| 彩票| 宣汉县| 海丰县| 九龙城区| 邹平县| 宽甸| 昌宁县| 城固县| 新邵县|