对于使用API进行身份验证,我创建了一个包含用户的电子邮件和密码的编码字符串,如下所示:
String userpass = u[0].getEmail() + ":" + u[0].getPassword();
userpass = Base64.encodeToString(userpass.getBytes("UTF-8"), Base64.DEFAULT);
String basicAuth = "Basic " + userpass;
HttpUrlConnection conn = new HttpUrlConnection();
conn.setRequestProperty("Authorization", basicAuth);
问题是,一旦生成了这个字符串,就会添加新的行和空格,这使得字符串看起来像这样:
授权:基本dHJpc3RhbkBjb3BheS5jb206MTA3ZDM0OGJmZjQzN2M5OTlhOWZmMTkyYWRjYjc4Y2IwM2I4ZGRj 纳克==
这导致API只能看到第一部分(而不是“Ng ==”部分),这导致服务器认为电子邮件和密码有问题。
我已经尝试过String.Replace和ReplaceAll的所有形式,但这似乎没什么帮助。
建议是在API本身修复字符串,但由于API没有收到整个字符串,因此无法选择。
欢迎任何建议,提前谢谢
答案 0 :(得分:0)
我觉得这很愚蠢,但Base64实际上有办法使这项工作。 加密方法只需设置为“Base64.No_WRAP”而不是“Base64_DEFAULT”。 正在考虑删除这个问题,但是如果有人有类似的问题,我希望它能节省一些时间。