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
Post a Comment