如何使用 Java Jersey 对路径参数进行编码
如何对路径参数(不是 form-url-encoded)进行编码,而只是对附加在格式中的单个 URL 进行编码:
public String method(@PathParam("url") String url) {
}
有很多关于表单 URL 编码的参考,但我想简单地对上面的字符串进行编码。
How do you encode a path parameter (not form-url-encoded) but just a single URL that's appended in the format:
public String method(@PathParam("url") String url) {
}
There are lots of references to form URL encoding, but I want to simply encode a string as in the above.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
就像前面的答案中提到的
URLEncoder
只能用于查询参数,不能用于路径参数。这对于查询参数中的+
但路径中的%20
等空格来说很重要。可以使用。使用 org.apache.http.client.utils.URIBuilder 也可以。
setPath
在这里转义路径部分。使用java.net.Uri
构造函数的纯 Java 也可以工作。Like mentioned in the previous answer
URLEncoder
can only be used for query paramaters, not path parameters. This matters e.g. for spaces which are a+
in the query parameter but a%20
in the path.can be used. Also using an
org.apache.http.client.utils.URIBuilder
would work.setPath
is escaping the path part here. Also pure Java by using a constructor ofjava.net.Uri
works.为什么你想在那里对其进行编码,如果有什么你不想对其进行解码?在任何情况下,您都可以调用标准 URLEncoder< /a>.
Why would you want to *en*code it there, if anything wouldn't you want to *de*code it? In any case, you would call the standard URLEncoder.