Я создаю приложение с API Level 7 (Android 2.1), и мне нужно декодировать полученную сервером строку, которая закодирована с Base64. Я знаю, что библиотека Base64 включена в Android 2.2, поэтому я включаю ее исходный код прямо в свой проект. Вы можете найти исходный код здесь: Base64 .
Так что моя проблема в том, что когда я пытаюсь декодировать строку, base64 возвращает это: BASE 64 : [B@46392d10
.
Если я запускаю код, который сервер отправляет мне в онлайн-декодер base64, я получаю это: le":"en_US","id":2,"error_code":6003,"error_string":"Unsupported Client Version"}
Вот код, который я использую:
HttpResponse response = httpclient.execute(httppost);
Log.v("Response ","Status line : "+ response.getStatusLine().toString());
String responseBody = EntityUtils.toString(response.getEntity()); //response
Log.v("Response ","Response : "+ responseBody);
String objectIdentificator = responseBody.substring(0,32);
Log.v("Response ","Object Identificator (LONGINT) : "+ objectIdentificator);
String type = responseBody.substring(33,36);
Log.v("Response ","TYPE (UNSIGNED BYTE) : "+ type);
String operation = responseBody.substring(37,40);
Log.v("Response ","OPERATION (UNSIGNED BYTE) : "+ operation);
String objectId = responseBody.substring(41, 73);
Log.v("Response ","UID (CHAR, length 32) : "+ objectId);
String id = responseBody.substring(74, 106);
Log.v("Response ","ID (LONGINT) : "+ id);
String size = responseBody.substring(107,139);
Log.v("Response ","Data Size (LONGINT) : "+ size);
String hash = responseBody.substring(140,172);
Log.v("Response ","Data Hash (CHAR, length 32 : "+ hash);
String dType = responseBody.substring(173,176);
Log.v("Response ","Data Type (UNSIGNED BYTE) : "+ dType);
String data = responseBody.substring(177, responseBody.length());
Log.v("Response ","Data (CHAR, any length, in BASE64) : "+ data);
String first = Base64.decode(data, Base64.DEFAULT).toString();
Log.v("Response ","BASE 64 : "+ first);
Есть предложения, как это исправить?