我很沮丧。我有一个基本的 Http 授权。为此,我设置了一个 HttpGet
Header。
此 Header 需要进行 Base64 编码。我是这样做的:
String acc = uname + ":" + pword;
byte[] a = acc.getBytes();
String header = "Basic " + new String(Base64.encode(a, Base64.DEFAULT));
但是这个编码的字符串不起作用。当我记录标题时,它会打印出我需要的内容。
它看起来与 String h = "Basic c2NodWsZXI6aGVpbmNA==";
相同,这是有效的。
但是当我比较 header.equals(h);
或 header==h
时,它们都是 false
。
最后,当我将 header 设置为 header
时它不起作用,但是当我使用 h
时它起作用了。我猜它与字符串编码有关,但我尝试了 .getBytes("UTF-8")
和类似(ASCII,UTF-16)的不同方式,但它们都不起作用。
用户名和密码为普通字符和数字。
谁能看出错误?谢谢 格雷维乌斯
最佳答案
header.equals(h)
返回 false 表示字符串不相同。 header==h
应返回 false,因为它们不是相同的引用。
也许是空白?试试 header.trim().equals(h.trim())
关于java - Base64 编码字符串不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22439027/