我正在使用JCIFS库,我将samba文件URL作为
SmbFile file = new SmbFile("smb://domain;username:P@ssword@abc.com/share/filename.txt")
file.connect
请注意,密码为@
。 Samba文件连接失败,提供java.net.UnknownHostException
。除了解析URL并使用NtlmAuthentication
单独传递auth之外,还有其他任何方式......
在格式网址中,我尝试使用方括号,但没有帮助。
答案 0 :(得分:2)
URL编码密码如下
URLEncoder.encode(password, "UTF-8");
这会将您的密码编码为-P%40ssword 这称为当前编码。检查此Wikipedia Link以了解有关当前编码的更多信息。
但这不是一个好习惯。创建一个NtlmPasswordAuthentication来设置身份验证详细信息。
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(domain, username, password);
String path ="abc.com/share/filename.txt";
SmbFile file = new SmbFile(path,auth);
答案 1 :(得分:0)
我做了密码的UrlEncode,解决了这个问题。