使用 java 类 HttpsURLConnection

2022-09-01 09:16:37

我有一小段代码,它基本上影响了HTTP客户端,即它发布请求并使用re RESPONSE。只要HTTP是封闭的,一切都可以很好地工作。出于某种原因,我现在也必须支持HTTPS。因此,以下是我为了打开连接而执行的操作:

 URL url = new URL(serverAddress);
 HttpsURLConnection httpsConn = (HttpsURLConnection) url.openConnection();

这将失败,指出:

sun.net.www.protocol.https.HttpsURLConnectionImpl cannot be cast to com.sun.net.ssl.HttpsURLConnection

我想这有点微不足道,但我只是不明白我在这个中做错了什么......谷歌搜索它,代码看起来是正确的 - 不是吗?

任何想法都值得赞赏!


答案 1

只需将其保留java.net.URLConnection或将其转换为java.net.HttpURLConnection即可。两者都提供了完成所需任务的方法。


与技术问题无关的附带说明:您永远不应该在代码中显式导入/使用Sun Java SE实现特定的类。这些是未记录的类,可能会发生更改,这可能会导致在升级 JVM 时代码中断。另一方面,当您在不同品牌的 JVM 上运行代码时,您的代码也可能中断。


更新:由于您似乎不小心导入了它,请转到窗口>首选项>Java>外观>类型过滤器添加并进入列表。这样,您就不会意外导入它们:com.sun.*sun.*

enter image description here


答案 2

您的网址的协议也应该是https而不是http。检查您的网址。