하이브리드앱 방식의 앱을 개발 중 발생한 트러블 내용을 남겨본다.



아래와 같이 URL Scheme을 활용하여 웹에서 앱으로 데이터를 넘겨서VOD를 플레이하는 부분이 있다. 

appname://key=Abcde+


key 파라미터의 값은 웹에서 BASE64로 인코딩하여 앱으로 넘기는데

문제가 된 부분은 앱에서 해당 값을 디코딩할 때 "bad BASE-64" 오류가 발생하는 것이다.

처음엔 UrlDecoding 후 BASE64 Decoding 하여 문제가 발생하는게 아닐까 의심하였는데


구글링 결과...


생각치 않는 부분에서 버그가 존재한다는 것을 알게 되었다.



버그 내용은 환경에 따라 BASE64로 인코딩한 값을 GET 방식으로 전송하면 

"+" 플러스 문자가 공백으로 변경되어 값을 받는 쪽에서는 디코딩 시 오류가 발생할 

있다는 것이었다. 


간단한 해결방법은 값을 받는 측에서 문자치환을 통해 " " 공백문자를 "+" 플러스 문자로 

변경하고 BASE64로 디코딩하는 것이다.


공백 외에도 "_"를 "/"로 "-"를 "+"로 치환하여야 한다고 하니 꼭 기억하고 있자.


 


'IT > Java' 카테고리의 다른 글

JAVA Install/Uninstalling For Mac  (0) 2015.11.15
SuppressWarnings에서 사용가능한 token  (0) 2015.06.22

WRITTEN BY
Dukejin
If you don't walk today, you will have to run tomorrow. Try hard, Try hard!

,