Android - отправка/получение изображения веб-API

Я уверен, что это общий вопрос, и я, вероятно, найду решения для этого, но я их не понял. К тому же я делаю это совершенно вслепую. Еще один момент: я не хочу использовать сторонние библиотеки.

Мне нужно отправить изображение из моего приложения для Android на мой сервер через веб-сервис С# rest.

Я наблюдал этот метод для преобразования растрового изображения в байт [].

public static byte[] getBitmapAsByteArray(Bitmap bitmap) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        bitmap.compress(CompressFormat.JPEG, 0, outputStream);       
        return outputStream.toByteArray();
    }

И здесь у меня есть две (как минимум) проблемы:

  1. Как отправить в формате JSON? Я попробовал Base64.encode() с флагами COMMON и URLSAFE (или что-то в этом роде), и я получаю сообщение об ошибке на стороне сервера: Not a valid Base64.

  2. Тогда я полагаю, что на стороне клиента все в порядке, так как же мне получить и обработать байт []? Теперь кажется, что он пытается автоматически конвертировать и терпит неудачу, может быть, потому что клиент отправляет неверные данные или... я не знаю.

Я не могу предоставить код прямо сейчас (на самом деле я думаю, что у меня вообще нет кода для этого), но я обновлю то, что у меня есть, если потребуется.

Спасибо и извините за этот ужасно заданный вопрос


person Frs    schedule 02.06.2015    source источник


Ответы (1)


Android:

byte[] content = getBitmapAsByteArray(bitmap);
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new ByteArrayEntity(content));           
HttpResponse response = httpClient.execute(httpPost);

c#.net

byte[] fileData = null;
using (var binaryReader = new BinaryReader(Request.Files[0].InputStream))
{
    fileData = binaryReader.ReadBytes(Request.Files[0].ContentLength);
}
person Mert    schedule 02.06.2015
comment
Во-первых, спасибо за ответ. Во-вторых, часть Android устарела. - person Frs; 02.06.2015