use*_*770 3 jmeter url-encoding
我刚开始使用 jmeter。我的应用程序返回一个带有加密值的 url 作为响应,它必须作为获取下一页的请求传递。加密值总是以“=”结尾,例如。“ http://mycompany.com/enc=EncRypTedValue= ”。在将值作为请求传递时,“=”被替换为一些其他字符,例如 '%3d' ex " http://mycompany.com/enc=EncRypTedValue%3d " 。由于令牌已更改,我的应用程序未为请求提供服务。
那么您的应用程序就有问题了,因为这就是它应该发送的方式。Url 参数应按照rfc3986中指定的方式进行编码。浏览器甚至可以自动执行此操作,因此如果您的网络应用程序无法正常工作,则应该修复该问题。
如果 URI 组件的数据与作为分隔符的保留字符的用途发生冲突,则必须在形成 URI 之前对冲突数据进行百分比编码。
reserved = gen-delims / sub-delims
gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
/ "*" / "+" / "," / ";" / "="
Run Code Online (Sandbox Code Playgroud)
我花了一段时间才理解这一点,与网络标准 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
希望这可以帮助某人。
| 归档时间: |
|
| 查看次数: |
21792 次 |
| 最近记录: |