gpt4 book ai didi

java - 获取字符串 url 并对其进行编码的最佳方法是什么

转载 作者:行者123 更新时间:2023-11-30 07:35:38 24 4
gpt4 key购买 nike

我觉得我一定是错过了正确的主题,因为这似乎在之前已经得到了明确的回答,如果是重复的话,我很抱歉。我在这里和其他地方阅读了很多主题,但我没有看到一个明确的“这就是你如何做”这个问题的答案......

该程序将接收作为字符串的完整 url。例如:“http://www.stackoverflow.com/questions/somepage?somequery#somefragment”

我想获取这个字符串并确保它被正确编码以用于像 HttpClient 这样的连接。

根据我的阅读,执行此操作的方法似乎是使用 URI() 构造函数,其中各个部分作为参数。所以这就引出了一个问题,什么是最可靠的方法来获取一个字符串 url,除了它是一个 url,我们一无所知,并将它分解成 URI() 构造函数所需的各个部分。

这是我拼凑的。这种方法有什么缺陷吗?

URL url = new URL(urlString);
URI uri = new URI(url.getProtocol(), url.getAuthority(), url.getPath(), url.getQuery(), null);

然后,uri 变量包含一个已编码的随时可用的 URI。到目前为止,这段代码是有效的,但我想确保没有任何可能发生的陷阱。

谢谢

最佳答案

在某些情况下,URI 类确实执行其组件字段的转义。 管理 URL 编码和解码的推荐方法是使用 URI,并使用 toURI() 和 URI.toURL() 在这两个类之间进行转换。引用:http://download.oracle.com/javase/1.5.0/docs/api/java/net/URL.html

请注意,任何符合 RFC 2396 的 URL 实例都可以转换为 URI。但是,有些不严格合规的 URL 无法转换为 URI。

URI.toURL 是一种便捷的方法,调用它相当于评估表达式 new URL(this.toString()) *after first检查此 URI 是否绝对*e。

关于java - 获取字符串 url 并对其进行编码的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4252335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com