當前位置:
首頁 > 最新 > 測試圖片上傳介面中遇到的問題及解決辦法

測試圖片上傳介面中遇到的問題及解決辦法

測試一個圖片上傳介面,頁面如下:

點擊「上傳」按鈕,選擇圖片後,就能上傳了。

用Python寫程序,來測試這個介面。

首先,Fiddler抓包,看一下請求報文響應報文,如下圖:

這是上傳圖片所觸發的http請求,也就是圖片上傳介面。

請求報文:

這是請求報文的部分介面,通過上圖,可以知道:

1.這是post請求

2.Content-Type是multipart/form-data

響應報文:

分析上圖,可知:

1.返回報文是json格式

2.通過httpStatus和success欄位的值來判斷介面是否調用介面成功

為啥總是強調Content-Type呢?

因為哈,post請求,向伺服器發送數據,發送的數據類型,也就是Content-Type主要有以下幾種:

1.application/x-www-form-urlencoded

2.multipart/form-data

3.application/json

4.text/xml

不同的數據類型,我們寫的程序也是不一樣的。

關於multipart/form-data,大家可以看一下這篇文章:

本文關鍵詞:

Python2、multipart/form-data、上傳文件

這次還用Requests這個庫。

Requests官方文檔是這麼寫的,如下圖:

我也寫了類似的程序,如下:

但是介面沒有返回成功,報錯兒如下:

剛才試了,我們的介面是沒有問題的,返回了正確的結果,為什麼我自己用python寫程序來調用介面,介面就返回錯誤信息了呢?

那就只能有一種解釋了,我們寫的程序有問題,給介面發送了錯誤的數據,那麼介面也就給我們返回了錯誤的信息

開始排查,先比較一下python程序發出的請求報文和正確的請求報文之間的區別:

python程序發出的請求報文:

正確的請求報文:

只看最後一項,一個是name="file",一個是name="files",找到差別了,改一下程序,如下:

改動前:

改動後:

這次一改動,介面就返回成功信息了,哈哈,如下:

決心看一下js代碼,如下:

上面應該就是上傳圖片的那段js代碼,在代碼中,把上傳框的名字命名成了files,因此就只能是files,而不能是file了。

以上為個人總結,歡迎各位同學批評指正!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 小期科技 的精彩文章:

TAG:小期科技 |