我正在尝试在URL中传递以下行
metadata={"occasion":[{"metavalue":"day-casual"}],"fit":[{"metavalue":"slim"}]}
但是当我运行测试时,出现如下错误
java.net.URISyntaxException:索引为220的查询中的非法字符: 在java.net.URI $ Parser.fail(URI.java:2848) 在java.net.URI $ Parser.checkChars(URI.java:3021) 在java.net.URI $ Parser.parseHierarchical(URI.java:3111) 在java.net.URI $ Parser.parse(URI.java:3053) 在java.net.URI。(URI.java:588) 在java.net.URL.toURI(URL.java:946)
我想问题是带有特殊字符的字符串试图传递URL。
有人可以帮我编码和发送吗?
答案 0 :(得分:1)
根据RFC 3986,URL只能包含数字,字母和一些图形符号,更精确地说:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=
任何其他字符,即{
和}
必须为URL-encoded
如果您需要将JSON结构用作URL查询字符串的一部分,则需要将其包装到__urlEncode() function中,例如:
${__urlencode(metadata={"occasion":[{"metavalue":"day-casual"}]\,"fit":[{"metavalue":"slim"}]})}
查看Apache JMeter Functions - An Introduction文章以熟悉JMeter Functions概念。