requests---requests上傳圖片


  我們在做接口測試的時候肯定會遇到一些上傳圖片,然后進行校驗,今天我們一起學習通過requests上傳圖片,查看是否上傳成功

 

抓取上傳接口

這里我以百度為例子進行操作,為啥要用百度呢,主要上傳文件比較簡單不用登錄啥的~~~通過fiddler抓取上傳圖片的接口地址以及請求攜帶的參數內容

通過下面操作進行選擇圖片進行上傳,然后通過fiddler進行分析接口內容

通過分析抓取的內容,我們可以看到接口地址為:“https://graph.baidu.com/upload”

請求的參數類型為from-data,這個類型后面會具體的介紹,這里先不具體說了,這里不影響我們操作

參數格式

這里在插個知識點,就是requests文檔中有對上傳文件單獨書寫,我們可以按照他們的標准進行書寫詳細的可以進行查看requests官方文檔

參數書寫情況為:

# 123.jpg為圖片,與代碼在當前目錄下,image/jpeg 為圖片格式
files = {
    "tn":"pc",
    "image":("123.jpg",open('123.jpg','rb'),"image/jpeg"),
    "from":"pc",
    "image_source":"PC_UPLOAD_SEARCH_FILE",
    "range":'{"page_from": "searchIndex"}'
}

請求上傳圖片

選擇圖片

# coding:utf-8
import requests
url = "https://graph.baidu.com/upload"
files = {
    "tn":"pc",
    "image":("123.jpg",open('123.jpg','rb'),"image/jpeg"),
    "from":"pc",
    "image_source":"PC_UPLOAD_SEARCH_FILE",
    "range":'{"page_from": "searchIndex"}'
}
r = requests.post(url,files=files)
print(r.json())

通過查看返回,點擊鏈接進入到百度識圖中

但是當我們點擊進去后會發現瀏覽器好像放大了我們的頁面一樣,這是什么鬼?哪里出錯誤了嗎?

原來是我們在填寫數據的時候數據的格式寫錯了,有一些參數沒有添加,我們要表示為None

# 每個value其實都是有2個參數,只是其中一個沒有,那么如果我們不穿的話就會出現剛才的問題,這個是需要傳None
files = {
    "tn":(None,"pc"),
    "image":("123.jpg",open('123.jpg','rb'),"image/jpeg"),
    "from":(None,"pc"),
    "image_source":(None,"PC_UPLOAD_SEARCH_FILE"),
    "range":(None,'{"page_from": "searchIndex"}')
}

通過修改后的鏈接,我們再一次取請求,查看這次的情況,發現是好的,突然感嘆到python太強大了~~

 

通過一個小的例子,我們學習了如何通過requests發送from-data的數據類型,但是如果想要上傳大文件,需要安裝第3方庫,這個我們下次在一起學習~~~持續更新中~~~

 

如果感覺寫的對您有幫助,可以右下角點擊個關注哦~~點關注,不迷路。

 


免責聲明!

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



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