java - Receiving a Base64 encoded string from Android into C# application -


in c# application, having bitmap encoded base64 string sent on android application, decode , set equal byte array.

i exception though:

"a first chance exception of type 'system.formatexception' occurred in mscorlib.dll".

android side:

byte[] iconbytearray = null;  bytearrayoutputstream baos = new bytearrayoutputstream();   bitmap.compress(bitmap.compressformat.jpeg, 90, baos); //bitmap bitmap created elsewhere iconbytearray = baos.tobytearray(); encodedicon = base64.encodetostring(iconbytearray, base64.default); return encodedicon; 

c# side:

byte[] arr = system.convert.frombase64string(encodedicon); //this throws exception 

does know of cause? i'm guessing format of base64 string in java not able decoded c# application? looks may have something this , replace characters? tried solution , got same exception.

the string sent through android looks

"/9j/4aaqskzjrgabaqaaaqabaad/2wbdaamcagmcagmdawmeawmebqgfbqqebqohbwyidaomdask\ncwsndhiqdq4rdgslebyqermufruvda8xgbyugbiufrt/2wbdaqmebauebqkfbqkudqsnfbqufbqu\nfbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbqufbt/waarcabgagadasia\nahebaxeb/8qahwaaaqubaqebaqeaaaaaaaaaaaecawqfbgcicqol/8qatraaagedawieawufbaqa\naaf9aqidaaqrbrihmuege1fhbyjxfdkbkaeii0kxwrvs0fakm2jyggkkfhcygroljicokso0nty3\nodk6q0rfrkdisuptvfvwv1hzwmnkzwznaglqc3r1dnd4exqdhiwgh4ijipktljwwl5izmqkjpkwm\np6ipqrkztlw2t7i5usldxmxgx8jjytlt1nxw19jz2uhi4+tl5ufo6erx8vp09fb3+pn6/8qahwea\nawebaqebaqebaqaaaaaaaaecawqfbgcicqol/8qatreaagecbaqdbacfbaqaaqj3aaecaxeebsex\nbhjbuqdhcrmimoeifekrobhbcsmzuvavynlrchyknoel8rcygromjygpkju2nzg5okneruzhselk\nu1rvvldywvpjzgvmz2hpann0dxz3ehl6gooehyahiimkkpoulzaxmjmaoqokpaanqkmqsro0tba3\nulm6wspexcbhymnk0tpu1dbx2nna4upk5ebn6onq8vp09fb3+pn6/9oadambaairaxeapwd8qq2t\ng8eeivenqbrstc1purymum1pzyyoghuzvsm8jj3rfr9av2ipl+gf7phh+xn1qfznql6rtty5asym\ncsepzdjahjx3roo4atiw1qjznhbi8fhcbfsxu+vpran/kmfl9/wqrxp/0kwu/wdgsn/+io/4vv40\n/wchs13/amfk/wd8rx7cj4m"

try

encodedicon = encodedicon.replace(@"\n", ""); if(encodedicon.length % 4 != 0)     // may have 0, 1 or 2 padding '='     encodedicon += new string('=', 4 - encodedicon.length % 4); byte[] arr = system.convert.frombase64string(encodedicon); 

according base64:

after encoding non-padded data, if 2 octets of 24-bit buffer padded-zeros, 2 "=" characters appended output; if 1 octet of 24-bit buffer filled padded-zeros, 1 "=" character appended. signals decoder 0 bits added due padding should excluded reconstructed data. guarantees encoded output length multiple of 4 bytes.


Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

django - CSRF verification failed. Request aborted. CSRF cookie not set -

jsf - How to ajax update an item in the footer of a PrimeFaces dataTable? -