发表于: 2019-11-05 23:50:09
1 1014
今天完成的事:
1、使用postman测试多图片上传接口。
测试单个图片上传接口,只需要在body中选择form-data,填写入参中绑定的参数名称,选择file格式,在其后可以选择图片,并且不要忘了请求中的其他参数也要填写!!这里就是下面的url。
因为是数组,百度多图片测试方法,是在绑定参数后面写索引下标。
结果报错数组下标越界异常,返回的集合为空,所以在get方法得到集合数据时会报错异常。也就是说这里一个图片也没读取到,尝试着将所有的下标删除,也就是在key处只写绑定参数的名称,multipartFile,结果就能上传了。
绑定参数的名称,multipartFile。
下图是正确写法, 但是这里5个图片必须都上传,才能成功,有一个为空的话,也会报错500,下标越界异常。
controller中是这么写的,确实是有问题,但是直接在页面上传图片时,只传部分图片也没有报错。。不知道为什么postman测试会报错。。
在页面上传一个图片时,数据库可以成功插入图片地址数据。
询问师兄后,得知可以将存储图片地址的字段设为数组,就查询了相关的知识,这里选择删除4个存储图片的字段,剩余一个字段存储所有图片地址,将类型改为text。并修改相应的sql语句、实体类、测试类等等。
而后将存储图片地址的list集合转为String类型,存入数据库,取出时再将其转为list集合形式。
使用 String.join 方法,将list集合转为String类型存入数据库,图片地址之间用“,”隔开。而后使用 split 方法将String类型中的“,”删除,用 Arrays.asList 方法将字符串转为list集合,进行控制台的输出。成功只传入4个图片。
使用postman测试,成功只插入部分图片,没有报错。
上面用到将list集合转为String类型的 String.join 方法和 StringUtils.join 方法的作用是一样的,都是将数组或集合以某种拼接符拼接到一起形成新的字符串。
但是 StringUtils.join 方法需要导入common-lang3的jar包,且传入的第一个参数是任意类型的数组或集合,第二个参数是拼接符。
而 String.join 方法是JDK8新增的方法,无序导包,且第一个参数是拼接符,第二个是数组或集合。
两者之间参数顺序不一样,而且适用的集合数组类型不同。
String.join 方法适用于String类型的集合数组, StringUtils.join 方法则可以传入Integer或其他类型集合数组。
将字符串转为list集合的 Arrays.asList 方法,则不适用于基本数据类型,可以使用包装类Integer等,且不支持add和remove方法。这里因为也不需要,所以就没有理会这些缺点。
2、修改所有接口返回json,添加状态码信息。
其中对于list集合、字符串进行非空判断。
字符串的非空判断,是不为null,且使用trim方法后不为空字符串。
其中trim方法是用来取出字符串中的空格,是截取非空格的字符串,new出的一个新的对象。不是仅仅删除了两端的空格。
测试了一下,结果证明,trim方法可以去除空格。
对于一些跟其他表格有主键关联的字段,使用@RequestParam注解绑定参数,并设定默认值,比如,若没有返回父作品集id,默认值为0,即该作品集为一级作品集。
但是在使用postman测试时,添加的post请求都报错。。原因不明,因为postman的使用还没仔细看。。明天好好看下。
其余的都是get请求,全部都能实现,且请求时间均小于200ms,类似下图。
明天计划的事:
1、使用postman测试post请求。
2、学习mybatis的逆向工程。
3、使用nginx查看响应时间,并调整。
遇到的问题:
使用postman测试时,添加的post请求都报错。。原因不明,因为postman的使用还没仔细看。。明天好好看下。
收获:
1、了解了postman如何测试图片上传接口,需在body中选择form-data,填写入参中绑定的参数名称,选择file格式,在其后选择图片。
2、解决了多图片上传接口使用postman测试报错数组下标越界异常问题,了解了
3、对于list集合、字符串进行非空判断进行了了解,了解了trim方法。
评论