#java #android #ksoap2
#java #Android #ksoap2
Вопрос:
У меня есть этот код для получения массива байт. Клиент встроен в ksoap2.
Со всеми свойствами у меня все в порядке, но когда я пытаюсь получить свойство, в котором есть изображение, оно возвращается null
при BitmapFactory.decodeByteArray
выполнении. И действительно, я получаю информацию при отладке.
Код, который я использую, является:
String result = ((SoapObject)poSoap).getProperty("MyImage").toString();
byte[] bytes = result.getBytes();
Bitmap png = BitmapFactory.decodeByteArray(bytes, 0, <<<png file size>>>);
Свойство myImage представляет собой файл png.
В качестве сервера я использую WCF на C # и получаю файл с помощью:
var bytes = File.ReadAllBytes(@file);
@file — это путь к файлу, он работает нормально.
Я думаю, что проблема не в стороне сервера, а в стороне клиента.
Есть ли у меня другой способ получить это свойство (введите byte[] ) и преобразовать его в Bitmap?
Ответ №1:
Я получил решение, как я уже сказал, это было на стороне клиента, только мне нужно было декодировать в base64, мой новый код:
String result = ((SoapObject)poSoap).getProperty("MyImage").toString();
byte[] bloc = Base64.decode(result, Base64.DEFAULT);
Bitmap png = BitmapFactory.decodeByteArray(bloc,0,bloc.length);