put方法上传文件踩坑
在项目中,我们用过最多的上传文件的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已体现,在接口中不要勾上。