URL 到 URI 类转换异常

问题描述 投票:0回答:1

我有这个代码:

URL url = new URL(urlStr)
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();

并且工作正常,直到我更新到最新的 spring/库版本。之后,它向我展示了这个构造函数 new URL(String url) 在

URI.toURL()
的风格中被弃用,以构造
URL
的实例。我将代码重写为:

Path path = Paths.get(urlStr);
URI uri = path.toUri();
HttpsURLConnection con = (HttpsURLConnection) uri.toURL().openConnection();

但是它正在抛出:

java.lang.ClassCastException: class sun.net.www.protocol.file.fileurlconnection cannot be cast to class javax.net.ssl.HttpsURLConnection (sun.net.www.protocol.file.fileurlconnection and javax.net.ssl.HttpsURLConnection are in module java.base of loader 'bootstrap')

所以现在我正在寻找如何重写它以使其再次工作。

java url uri httpsurlconnection
1个回答
0
投票

Javadoc 弃用通知显示“有关更多详细信息,请参阅有关构造函数弃用的注释”。该注释说您可以像这样创建 URL:

URL url = URI.create(urlStr).toURL();
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();

这是可行的,因为每个 URL 都是一个 URI。因此,您可以将 URL 字符串传递给 URI 构造函数(或传递给

create()
便捷方法)。

© www.soinside.com 2019 - 2024. All rights reserved.