新的行和空格自动插入String中

时间:2015-12-18 14:09:36

标签: java string authorization httpurlconnection

对于使用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       纳克==

Screenshot from android studio showing the "conn.getRequestProperty"

这导致API只能看到第一部分(而不是“Ng ==”部分),这导致服务器认为电子邮件和密码有问题。

我已经尝试过String.Replace和ReplaceAll的所有形式,但这似乎没什么帮助。

建议是在API本身修复字符串,但由于API没有收到整个字符串,因此无法选择。

欢迎任何建议,提前谢谢

1 个答案:

答案 0 :(得分:0)

我觉得这很愚蠢,但Base64实际上有办法使这项工作。 加密方法只需设置为“Base64.No_WRAP”而不是“Base64_DEFAULT”。 正在考虑删除这个问题,但是如果有人有类似的问题,我希望它能节省一些时间。