用戶要求對上傳的pdf計算hash排重,上線后發現排重失敗
1、postman直接調用接口沒有發現問題,每次獲取的hash值是一樣的
2、apifox網頁版,調用接口發現問題,清除緩存后(將選擇的文件刪除重新選擇),就會出現相同文件hash值不同
3、apifox本地安裝版本和postman一樣沒有發現問題
問題:
1、嘗試修改Content-Type,各種類型試了一下,包括流方式無效每次hash還是不同
2、發現每次上傳時request的Content-Length字段都有微小的長度差別,說明在上傳前已經不同了
3、嘗試前端算好hash回傳,值任然不同
4、用fiddler抓包,發現postman用httpclinet去上傳的二進制包和用網頁控件在瀏覽器上傳的包除了分隔符不同,網頁上傳還多了一些pdf相關的描述?
5、嘗試將PDF文件的擴展名修改為其他名字,如abc.pdf改成abc.upl,再次使用網頁post上傳,問題消失,每次hash都一樣
6、嘗試了在上傳前使用j上代碼修改文件名后上傳,無效。所以應該是網頁input file 控件在讀取文件時就做了處理
這個不知道是瀏覽器解析內核就是這樣規定的還是bug