在后续请求中传递“=”(等号)符号时遇到问题 - Jmeter

use*_*770 3 jmeter url-encoding

我刚开始使用 jmeter。我的应用程序返回一个带有加密值的 url 作为响应,它必须作为获取下一页的请求传递。加密值总是以“=”结尾,例如。“ http://mycompany.com/enc=EncRypTedValue= ”。在将值作为请求传递时,“=”被替换为一些其他字符,例如 '%3d' ex " http://mycompany.com/enc=EncRypTedValue%3d " 。由于令牌已更改,我的应用程序未为请求提供服务。

eis*_*eis 5

那么您的应用程序就有问题了,因为这就是它应该发送的方式。Url 参数应按照rfc3986中指定的方式进行编码。浏览器甚至可以自动执行此操作,因此如果您的网络应用程序无法正常工作,则应该修复该问题。

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

  reserved    = gen-delims / sub-delims

  gen-delims  = ":" / "/" / "?" / "#" / "[" / "]" / "@"

  sub-delims  = "!" / "$" / "&" / "'" / "(" / ")"
              / "*" / "+" / "," / ";" / "="
Run Code Online (Sandbox Code Playgroud)


Mar*_*rie 5

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

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

例如,以下内容:

http://example.com/?p1=hello=hi&p2=three=3

应该使用 encodeURIComponent() 对每个参数进行编码以构建以下内容:

http://example.com/?p1=hello%3Dhi&p2=three%3D3

  • 请注意,用于参数 p1= ... p2= 的等号保持原样。
  • 不要尝试编码/解码整个 URL,它不会工作。:)
  • 不要被浏览器地址栏/字段上显示的内容所迷惑,这只是人类友好的字符串,当您将其复制到剪贴板时,浏览器将对它进行编码。

希望这可以帮助某人。


小智 -1

使用引号来表达您的价值观。例如 -Jkey="val=ue"