Вопрос

Я строю услугу отдыха, принимающую Foo объекты, содержащие смесь строки а также двоичные данные. Это XML, который я получил до сих пор.

<foo>
     <text>regular text</text>
     <text mime="application/octet-stream">base64 encododed binary data</text>
</foo>

Это хорошая идея или есть недостатки, внедряющие большие количества (МБ) двоичных данных?

В качестве небольшого дизайна, я пытаюсь устроиться между использованием <text mime=".."/> или выделенное имя <binary>...</binary> Для бинарных данных. Что было бы более последовательным?

Это было полезно?

Решение

Я бы порекомендовал включить в ваш запрос/ответ XML только в том месте, где вы будете хранить двоичные данные, которые вы хотите передать, а затем получить эти данные, выполняющие другой запрос. Минусы этого решения состоят в том, чтобы выполнить другой запрос, но профессионалы на вашей стороне:

  • Нет необходимости сериализовать/десериализовать ваши 64 строки
  • более легкое тестирование вашего отдыха ws
  • Менее раздутый XML

Другие советы

HTTP предназначен для передачи полезных нагрузок произвольной длины. Отправка MBS данных будет в порядке. Передавать данные с помощью кодирования BASE64 не рекомендуется, потому что это будет увеличивать Количество байтов, которые вы должны отправить через проволоку, снижая пропускную способность.

Я бы посоветовал вместо этого рассмотреть Multipart Mime Type а не XML.

Какой у вас контейнер веб -сервиса? Формат XML будет генерироваться вашим бинарным сериализатором. Axis2 может быть полезен для вас. Он основан на аксиоме, предлагая прямую бинарную поддержку

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top