代码之家  ›  专栏  ›  技术社区  ›  Delvis Echeverria

如何用BeanShell解码URL?

  •  0
  • Delvis Echeverria  · 技术社区  · 9 年前

    我需要在请求中传递一个参数(URL的一部分),例如:

    "S;4;163;1;O;rAghjgjU="
    

    但是这个值被提取为一个正则表达式,如下所示:

    "S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D"
    

    我想使用BeanShell来解码URL。

    1 回复  |  直到 9 年前
        1
  •  6
  •   Dmitri T    9 年前
    1. JMeter提供 __urldecode() 函数,因此如果您使用它,如:

      ${__urldecode(S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D)}
      

      您将获得所需的值。

    2. 如果你仍然想投奔Beanshell,你可以调用 URLDecoder.decode(); 方法如:

      String decoded = URLDecoder.decode("S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D", "UTF-8");
      
    3. 还有 __Beanshell() 允许执行任意Beanshell脚本的函数,调用如下:

      ${__BeanShell(URLDecoder.decode("S%3B4%3B163%3B1%3BO%3BrAghjgjU%3D"\, "UTF-8"),)}
      

      看见 How to Use BeanShell: JMeter's Favorite Built-in Component 有关JMeter中Beanshell脚本的更多信息,请特别注意如何从Beanshelll脚本中调用Java和JMeter API类。