- 接口请求正文中包含中文,请求报错或者中文乱码。导入项目提示无效项目。
问题描述
1、现象一接口请求正文中包含了中文,比如请求正文是Json,Json的某个节点值为中文字符串。当发送请求时,请求报错或者实际请求的正文中中文乱码。
2、现象二导入一个项目,提示项目是无效项目:Invalid project file: E:\04WorkSpace\soapui\Study\Study-soapui-projec11t.xmlPlease try again.
解决方案
特别说明:针对现象二的无效项目,如果已经提示导入无效,那么说明该项目文件已经损坏(文件内容中中文乱码),所以导入时解析失败。为了防止这种情况的发生,需要在开始项目前(创建项目前),就按照下面的方法进行设置,并且以后都以 soapui-pro.bat (ready-api.bat)启动 SoapUI (ReadyAPI)工具。无效项目产生的原因:新建项目时,文件是以 utf-8 编码进行保存的。当再次打开项目,修改项目后保存(退出时会自动保存),较大可能会出现以 ANSI 编码保存文件,导致文件内容中文乱码。
1、如果是SoapUI Pro(如SoapUI Pro 5.1.2)打开 %SOAPUI_HOME%/bin 目录下的 soapui-pro.bat 文件,修改 set JAVA_OPTS 所在行,增加编码设置 -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 ,修改后如下:
rem JVM parameters, modify as appropriate
set JAVA_OPTS=-Xms128m -Xmx1024m -Dsoapui.properties=soapui.properties ...
- 接口请求正文中,存在和属性扩展相同写法的字符串(${value}),如何处理?
问题描述
接口请求正文中,存在和属性扩展相同写法的字符串(${value}),但不想该字符串被计算,而是直接发送该字符串。示例:
{
"mykey":"${value}"
}
解决方案
为了确保在发送的请求中不计算表达式的值,你需要添加一个额外的 "$"。即使用 ´$${value}´ 代替 ´${value}´ 。示例:SoapUI 中接口请求正文:
{
"id":"ad001",
"content":"$${soapui}"
}
实际发送内容:
{
"id":"ad001",
"content":"${soapui}"
}
参考资料:https://smartbear-cc.force.com/portal/KbArticleViewer?name=How-to-escape-character-in-the-request-XML-Form-view&sp=all ...