我想用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);
Run Code Online (Sandbox Code Playgroud)
我收到错误:401/Unutorized ... java.lang.NoClassDefFoundError:sun/misc/BASE64Encoder
我有什么办法可以尝试吗?
Jes*_*per 11
Oracle已经宣布删除 Java 9中的这些类.
您不应该使用sun.*包中的类 - 这些类不是Java的公共API的一部分,并且可以在任何新的Java版本中进行更改.
请参阅Oracle文档中为何开发人员不应编写调用'sun'软件包的程序.
而不是使用类sun.misc.BASE64Encoder:
如果您使用的是Java 8,则使用Class java.util.Base64进行Base 64编码和解码.
否则,使用第三方库,例如类org.apache.commons.codec.binary.Base64从Apache的百科全书编解码器.