Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
路途上的麻烦”=&引用;后续请求中的(相等)符号-Jmeter_Jmeter_Url Encoding - Fatal编程技术网

路途上的麻烦”=&引用;后续请求中的(相等)符号-Jmeter

路途上的麻烦”=&引用;后续请求中的(相等)符号-Jmeter,jmeter,url-encoding,Jmeter,Url Encoding,我刚开始使用jmeter。 我的应用程序返回一个带有加密值的url作为响应,该url必须作为请求传递才能获得下一页。加密值始终以“=”ex.“”结尾。将值作为请求传递时,“=”将替换为其他字符,如“%3d”ex“。由于令牌已更改,因此我的应用程序无法为请求提供服务 对您的值使用引号。例如,-Jkey=“val=ue”那么您的应用程序就有问题了,因为这是它应该发送的方式。Url参数应按照中的指定进行编码。浏览器甚至可以自动完成这项工作,所以如果你的web应用不起作用的话,这应该在你的web应用上得

我刚开始使用jmeter。
我的应用程序返回一个带有加密值的url作为响应,该url必须作为请求传递才能获得下一页。加密值始终以“=”ex.“”结尾。将值作为请求传递时,“=”将替换为其他字符,如“%3d”ex“。由于令牌已更改,因此我的应用程序无法为请求提供服务

对您的值使用引号。例如,-Jkey=“val=ue”

那么您的应用程序就有问题了,因为这是它应该发送的方式。Url参数应按照中的指定进行编码。浏览器甚至可以自动完成这项工作,所以如果你的web应用不起作用的话,这应该在你的web应用上得到修复

如果URI组件的数据与保留字符的 作为分隔符,则冲突数据必须 在形成URI之前编码的百分比


您正在经历的是URL编码-
=
是URL中的保留字符,您不能仅将其附加到未编码的URL中。信息技术你的情况显然已经发生了。在服务器端,url参数需要再次解码。不过,这通常是容器的工作
  • 您可以使用后处理器捕获响应并将其存储到JMeter变量。作为Java Unicode字符串的变量,对“=”符号进行额外编码时不应该遇到任何问题

  • JMeter提供了uuUrlDecode函数,您可以利用该函数对请求进行解码

  • 您可以使用_Beanshell函数或Beanshell预处理器对请求进行预处理,以解码整个URL,如下所示:

    URLDecoder.decode(vars.get("your_URL_to be decoded"),"encoding");
    

  • 如果要在后续请求中添加加密值作为请求参数,请确保未选中“Encoding”(编码)

    我花了一段时间才理解这一点,与网络标准中的其他语言和环境不同,URI(URL)不使用引号或某些转义字符来隐藏特殊字符

    相反,URL需要通过分别编码每个单独的参数来正确编码,以便构建完整的URL。在JavaScript中,参数的编码/解码分别使用encodeURIComponent()和decodUriComponent()完成

    例如,以下各项:

    应在每个参数上使用encodeURIComponent()进行编码,以生成以下内容:

    • 请注意,用于参数p1=。。。p2=保持原样
    • 不要尝试对整个URL进行编码/解码,否则将无法工作。:)
    • 不要被浏览器地址栏/字段上显示的内容所愚弄,这只是人性化的字符串,当您将其复制到剪贴板时,浏览器将对其进行编码

    希望这对其他人有所帮助。

    这不是传递请求参数的正确解决方案。字符串应该是url编码的,而不是用引号括起来。@seantheban不是所有的等号都将被编码为%3d吗?哪个函数将包含等号的值解析回一个单独的片段?例如p1=“hello=hi”&p2=25请指出完整的答案谢谢。@玛丽:是的,等号将被编码为%3D。解码的方式取决于语言。对于JS,您可以使用
    decodeURIComponent
    (请参阅)。对于PHP,只需使用
    urldecode
    ()。
    URLDecoder.decode(vars.get("your_URL_to be decoded"),"encoding");