Android Base64 URI 编解码bad base-64异常处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Base64 URI 编解码bad base-64异常处理相关的知识,希望对你有一定的参考价值。

这篇随笔介绍一个常用的Base64对URI编解码时不容易发现的异常状况。

android使用NanoHTTPD作为HTTP服务器对外提供HTTP数据流传输的应用里,用Base64对一个资源进行了编码,如下(调试截图):

资源:/storage/emulated/0/Movies/The Mountain.mp4

Base64编码后:L3N0b3JhZ2UvZW11bGF0ZWQvMC9Nb3ZpZXMvVGhlIE1vdW50YWluLm1wNA==

技术分享

此时该资源的链接是这样的:http://xxxxxxxxxxxx/L3N0b3JhZ2UvZW11bGF0ZWQvMC9Nb3ZpZXMvVGhlIE1vdW50YWluLm1wNA==

当一个外部请求设备请求该资源时,传来的URI如下

技术分享

/L3N0b3JhZ2UvZW11bGF0ZWQvMC9Nb3ZpZXMvVGhlIE1vdW50YWluLm1wNA==

即比原始编码后的URI前面多一个"/",如果不做任何处理这个URI"/L3N0b3JhZ2UvZW11bGF0ZWQvMC9Nb3ZpZXMvVGhlIE1vdW50YWluLm1wNA=="用Base64解码即发生bad-base64异常,判断首字符为"/"时去掉即解决。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于Android Base64 URI 编解码bad base-64异常处理的主要内容,如果未能解决你的问题,请参考以下文章

Android中使用commons-codec-1.6.jar 进行Base64编解码出现的问题

VC++详解Base64编解码原理以及Base64编解码接口实现(附源码)

中国菜刀之检查是否含有shell

python3的base64编解码

Base64编解码是什么?

[NodeJs] 如何使用nodejs对base64进行编解码?