多个请求在一起,目标请求虽然独立设置了Content-type=application/json,但由于,之前一个请求的信息头(Content-type=application/x-www-form-urlencoded)未设置成私有,而是全局,导致,请求时,实际读取的是全局的信息头,导致bodydata方式请求失败,
又由于,不了解jmeter的Parameters和Bodydata方式和信息头的关系,察看结果树,
以为不应该是bodydata方式,于是改为Parameters方式,百度后,知道put方式,传值用&符号将参数都写在Value上,修改订单成功!
于是更以为是之前bodydata方式导致的错误,但是到系统页面去查看数据,发现其他参数都修改成功了,唯有数组信息显示报错“Expect a Array,String given",于是,掉到解决Parameters怎样传数组的坑里,……
最终没解决,数组data : [ {"type":1,"num":1,"year":1}, {"type":2,"num":2,"year":2} ]含有特殊字符"{}、“”",会被jmeter转义,导致数据库收到是:
“\[\{\"type\":1,\"num\":1,\"year\":1\},\{\"type\":2,\"num\":2,\"yesr\":2\}\]”
以图为准,发表后,发现写的也被转义了,特别截图,大家正好可以参考下图片实际写的,和发表后被转义的。
,不仅由于转义多出很多\,而且,还多出“”,导致页面报上面的错误!
开发同学看不过,为此安装了jmeter帮我排查,使用了Bodydata方式,结果成功!后他查看了我的http信息头管理器,终于找到问题所在!结果还是改为bodydata方式,请求头使用Content-type=application/json,成功!