我正在尝试创建一个脚本,该脚本将从响应中取出URL并再次发送出去。 使用正则表达式提取器我已成功获取所需的URL,但它保持“&”发送它时,自然会失败。 例: GET http:// [ia-test01.inner-active.mobi:8080/simpleM2M/ClientUpdateStatus?cn=WS2006&v=2_1_0-iOS-2_0_3_7&ci=99999&s=3852719769860497476&cip=113-170-93- 111安培; PO = 642&安培;重= 1&安培; LT = 0&安培; CC = VN&安培; ACP =安培; PCP =] /
我正在尝试更换“&”用“&”。 我试过了:$ {__ javaScript($ {url} .replace(“&”,“&”))} 但它没有用。我也试过了正则表达式函数。 我不确定请求中的IP字段是否支持函数的使用。
我目前正在尝试使用beanshell后处理器。但我很确定有一个更简单的解决方案我不知道。
答案 0 :(得分:2)
通过将&
替换为&
,不确定您尝试获取的内容,但会尝试回复。
&
个实例,您需要使用replaceall
函数,而不是替换&
样本Beanshell预处理器代码
import java.net.URL;
URL myURL = sampler.getUrl();
String path = myURL.getPath();
String path_replaced = path.replaceAll("\\&", "&");
vars.put("NEW_PATH", path_replaced);
之后将${NEW_PATH}
放到"路径:"您的HTTP请求的一部分。
希望这会有所帮助。
答案 1 :(得分:0)
非常感谢。但是,我从最近的经验中看到,要替换一个实际上是RegExp特殊字符的字符,例如\" ()等,你需要放3个反斜杠而不是1,而不是2.这很奇怪。
所以你写了
var res = str.replaceAll("\\\\u003c", "<");
替换\u003c with <
答案 2 :(得分:0)
代码更少的解决方案:
使用以下语法
${__strReplace(ImAGoodBoy,Good,Bad,replaceVar)}
“ ImAGoodBoy”是将在其中进行替换的字符串
“好”是要替换的子字符串
“错误”是替换字符串
“ replaceVar”是用于保存结果字符串的变量