Должен ли я использовать кодировку Base64 или byte[] для возврата двоичных данных in.NET веб-служба
У меня простой вопрос. Должен ли я возвращать байтовый массив или просто base64 кодировать мои двоичные данные, предоставляя его через веб-службу в .NET? Есть ли плюсы/минусы с любым методом, который в основном поддерживается и т. д.
2 ответов
использовать массив байтов. По протоколу SOAP этот массив байтов будет автоматически сериализован с использованием кодировки base64. Ваш веб-сервис также будет более описательным, если вы используете массив байтов. Представьте, что кто-то хочет использовать ваш веб-сервис и смотрит на метод, подпись которого выглядит так:
string GetBinaryImageFromDatabase();
Он может задаться вопросом, почему этот метод возвращает строку и что я собираюсь делать с этой строкой, а если он возвращает массив байтов, это намного больше четкий.
Я видел метод веб-службы, который выглядит так:
string SaveCustomer(string customer);
думаю, что customer
и возвращаемые типы были: они были некоторыми проприетарными XML. Нет абсолютно никакого смысла использовать мыло, если люди изобретают протоколы над ним.
одним из соображений является то, что строка в кодировке Base64 позволяет использовать "тестовую форму" для отладки любых проблем и т. д. Массив байтов является сложным типом, и поэтому тестовая форма не будет работать.