orion知识

 找回密码
 立即注册
搜索
查看: 972|回复: 0

JavaScript 转换实例要点

[复制链接]

63

主题

75

帖子

1239

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1239
发表于 2020-1-11 20:12:39 | 显示全部楼层 |阅读模式
如下图,这是一个简单的基础服务,有两条线路,第一条规定了固定出参,使用js的直接编写出参;第二条是通过数据库查询获取数据;

那么把第二条获取的固定数据,以编写的模式写在第一个条中,那么出参不管调用条都是应该是相同的,通过soupui工具测试,结果也是如预料的一样,但这样的出参结果真的一样吗?



答案是否定的,我们通过监控系统去看数据的出参;

左边为线路1,右边为线路2,虽然他们长得很像,但还是有本质上的区别,编码类型不一样,由js代码编写的出参是GBK编码,而直接从数据库获取则是UTF-8。
      要点一:js通过该next.text=xxxx;  改变出参,将导致默认的UTF-8转变为GBK。

       那我们接着来测试,在两条路由的集合点添加一个js(等于是在两条路线后都加了这个处理),通过setField('路径','替换内容')(未标注序号的是替换所有的该路径内容)代码进行出参内容的替换,测试时将id的内容替换成‘你好’,那么继续用SoupUI测试,结果是线路2正常返回,线路一则报错。

要点二:setField功能只能对UTF-8的内容起作用。

         那么如何使得第一条路线也能成功呢,其实也简单,通过CharacterEncodingTranslator (Rhapsody字符编码转换工具),GBK转为UTF-8后,该服务也就能正常使用了。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|orion知识 ( 浙ICP备20002629号 )

GMT+8, 2024-9-17 03:34 , Processed in 0.080379 second(s), 20 queries .

快速回复 返回顶部 返回列表