解析jwt的时候遇到了java.lang.IllegalArgumentException: bad base-64 百思不得其解 按照网上说的:Android&ios java 这俩咋就不好使呢? 后来我看了篇帖子说
android开发中的bad base
-64错误
在涉及到服务器的软件中,由于使用android的Base64解码功能,而服务器端加密为了防止URL格式问题,会采用Apache的URLSafeEncode等方式进行数据安全加密,android端使用Base64
.decode(src
,Base64
.URL_SAFE
)不会出现问题
但是如果android自己加密,使用的时Base64
.encodeToString(bstr
,Base64
.DEFAULT
)就会有可能出现
对就是这个可能性,让我用Base64.DEFAULT解析的时候出bug了,关键这bug还挺奇怪,跟字符串长度没关系,跟解析内容没关系,但解析的东西组合到一起就报错,使用了Base64.URL_SAFE之后就正常了
private fun
base64Decode(content
: String
): String
? {
val contentByte
= Base64
.decode(content
,Base64
.URL_SAFE
)
try {
return String(contentByte
, java
.nio
.charset
.StandardCharsets
.UTF_8
)
} catch (e: Exception
) {
e
.printStackTrace()
}
return ""
}