如何用 BeanShell 解码 URL?
How to decode URL with BeanShell?
我需要在请求中传递一个参数(URL 的一部分),例如:
"S;4;163;1;O;rAghjgjU="
但是这个值被提取为像这样的正则表达式:
"S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D"
我想用 BeanShell 解码URL。
JMeter 提供了 __urldecode() 函数,所以如果你像这样使用它:
${__urldecode(S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D)}
您将获得所需的值。
如果您仍然想使用 Beanshell,您可以调用 URLDecoder.decode(); 方法,例如:
String decoded = URLDecoder.decode("S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D", "UTF-8");
还有一个__Beanshell()函数允许执行任意的Beanshell脚本,像这样调用它:
${__BeanShell(URLDecoder.decode("S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D"\, "UTF-8"),)}
有关 JMeter 中 Beanshell 脚本的更多信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component,特别注意如何从 Beanshell 脚本中调用 Java 和 JMeter API 类。
我需要在请求中传递一个参数(URL 的一部分),例如:
"S;4;163;1;O;rAghjgjU="
但是这个值被提取为像这样的正则表达式:
"S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D"
我想用 BeanShell 解码URL。
JMeter 提供了 __urldecode() 函数,所以如果你像这样使用它:
${__urldecode(S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D)}
您将获得所需的值。
如果您仍然想使用 Beanshell,您可以调用 URLDecoder.decode(); 方法,例如:
String decoded = URLDecoder.decode("S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D", "UTF-8");
还有一个__Beanshell()函数允许执行任意的Beanshell脚本,像这样调用它:
${__BeanShell(URLDecoder.decode("S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D"\, "UTF-8"),)}
有关 JMeter 中 Beanshell 脚本的更多信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component,特别注意如何从 Beanshell 脚本中调用 Java 和 JMeter API 类。