Отправить байтовый массив растрового изображения, используя http пост в Android? - PullRequest
2 голосов
/ 10 октября 2011

В моем приложении мне нужно вызвать API, используя Http Post для отправки некоторой информации на веб-сервер Поэтому мне нужно добавить идентификатор пользователя, имя, номер телефона и изображение в URL. Мне нужно преобразовать изображение в байтовый массив и добавить его в URL. Я использовал следующий код, но он не работал для меня. Я только что получил байтовый массив, подобный этому [B@4055dd90

Мой код

Bitmap bitmap1 = ((BitmapDrawable) d).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap1.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] bitmapdata = stream.toByteArray();

Может кто-нибудь, пожалуйста, помогите Мне?

Заранее спасибо!

Ответы [ 2 ]

5 голосов
/ 10 октября 2011

Две вещи:

  1. Изображения могут быть довольно большими.Таким образом, вам может быть лучше использовать JPG, так как вы можете сжать его (PNG не сжимает).Таким образом, вы должны использовать Bitmap.CompressFormat.JPEG и установить желаемую степень сжатия.
  2. При отправке в посте вы должны закодировать байт [] следующим образом: Base64.encodeBase64String( bitmapdata);

Дайте мне знать, если это работает для вас.ОН, и не забудьте расшифровать его на стороне сервера.

2 голосов
/ 10 октября 2011

Вы не можете отправлять изображения в виде байтового массива непосредственно на сервер.Вы должны закодировать его в строку Base64 с помощью класса Base64.Закодируйте битовый массив Bitmap в строку Base64 и отправьте эту строку на сервер с помощью метода HTTPPostЕсли у вас есть какие-либо сомнения, вы можете прокомментировать.

...