gpt4 book ai didi

java.lang.NoClassDefFoundError : sun/misc/BASE64Encoder 错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:44:51 25 4
gpt4 key购买 nike

我想用 java 代码连接一些域。我可以按如下方式在浏览器中连接域: http://username:password@domain.com

我尝试了以下方法:

    String enc = "username" + ":" + "password";
String encoded = new sun.misc.BASE64Encoder().encode(loginPassword.getBytes());
URL url = new URL("domain.com");
URLConnection conn = url.openConnection();
conn.setRequestProperty ("Authorization", "Basic " + encoded);

我收到错误:401/Unutorized...java.lang.NoClassDefFoundError: sun/misc/BASE64Encoder

有没有我可以尝试的解决方案?

最佳答案

Oracle 有 announced the removal Java 9 中的那些类。

您不应该使用 sun.* 包中的类 - 这些类不是 Java 公共(public) API 的一部分,并且可以在任何新的 Java 版本中更改。

参见 Why Developers Should Not Write Programs That Call 'sun' Packages在 Oracle 的文档中。

而不是使用类 sun.misc.BASE64Encoder:

如果您使用的是 Java 8,则使用类 java.util.Base64用于 Base 64 编码和解码。

否则,使用第三方库,例如class org.apache.commons.codec.binary.Base64来自 Apache Commons Codec .

关于java.lang.NoClassDefFoundError : sun/misc/BASE64Encoder 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29692146/

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