is.toString()
даст вам строковое представление экземпляра InputStream, а не его содержимое.
Вам нужно прочитать () байтов из InputStream в ваш массив. Для этого есть два метода чтения: read () , который читает один байт за раз, и read (byte [] bytes) , который читает байты из InputStream в байтовый массив Вы переходите к этому.
Обновление: чтобы прочитать байты, учитывая, что InputStream не имеет длины как таковой, вам нужно читать байты, пока не останется ничего. Я предлагаю создать метод для себя, что-то вроде этого - хорошая простая отправная точка (по крайней мере, так я бы сделал это в Java).
public byte[] readBytes(InputStream inputStream) throws IOException {
// this dynamically extends to take the bytes you read
ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream();
// this is storage overwritten on each iteration with bytes
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
// we need to know how may bytes were read to write them to the byteBuffer
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
byteBuffer.write(buffer, 0, len);
}
// and then we can return your byte array.
return byteBuffer.toByteArray();
}