В настоящее время я отправляю изображения между приложением IOS и веб-службой Java как Strings - есть ли лучший способ сделать это, и если да, то какой именно метод - строки для представления изображений огромны и их довольно сложно управлять.
благодаря
Если используемая вами реализация является сериализуемой, сериализуйте ее.
Я понял, что вы в настоящее время используете кодированные изображения BASE64, представляемые в виде строк, правильно?
Этот подход является разумным для небольших двоичных файлов/изображений, а также для избежания множества индивидуальных вызовов для каждого изображения в случае, например, списка изображений.
В любом случае - правильным способом было бы использовать запрос POST или PUT для отправки изображения на веб-службу Java в виде запроса x-www-form-urlencoded. Это похоже на то, что вы делаете в типичной форме загрузки.
Посмотрите пример в этом ответе: отправьте изображение на сервер в виде двоичных данных
Для загрузки изображения вы можете использовать GET NSURLRequest (включая требуемые заголовки, аутентификацию или другую информацию для запроса) и конвертировать полученные NSData в изображение.
[UIImage imageWithData:dataReceivedFromURLRequest];
Или напрямую создайте NSData для простых HTTP-запросов, подобных этому, и преобразуйте их в изображение:
NSData *urlData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://my-web-service/image.png"]];
На стороне сервера вы можете создать конечную точку REST изображения, например, с помощью JAX-RS.
Обратите внимание, что фреймворки, такие как AFNetworking, помогают значительно облегчить отправку и получение изображений/двоичных данных.