put方法上傳檔案踩坑
阿新 • • 發佈:2022-03-07
在專案中,我們用過最多的上傳檔案的http介面其實一直是post,直到遇到了put,我才瞭解,用PUT方法上傳檔案也是可行的,而且,put方法的特點是傳輸的實體部分是一個無結構的二進位制資料,而post方法則傾向於結構化的資料。上傳檔案這個行為本身是無結構資料的傳輸,檔案是一個整體,檔案的內容與傳輸行為無關,所以使用PUT更合適。
對於put上傳檔案,踩坑如下:
1.其實不關是上傳檔案本身,還需要傳遞到檔案的一些相關資訊,例如授權、MD5值這類資訊,保證檔案傳輸的有效性和一致性。以當前用到的jmeter 5.3為例,可以在Parameter中帶,也可以直接已拼接形式在path中帶上,要注意的是裡面的“?”符號和“&”符號。
2.檔案頭尤其重要,通常會帶MD5值、content-type這類關鍵資訊。
3.檔案本身也要帶,可以使用Files Upload本身,但在抓包中,其實看不到boudary分界線以及MIME TYPE這類資訊,因此這兩項要讓它空著,否則會一直提示檔案MD5校驗不通過。此處是個巨坑。
4.multipart/form-data在header中的content-type已體現,在介面中不要勾上。