Передача двоичных данных через веб-сервис SOAP?

У меня есть веб-сервис, который возвращает двоичный массив объекта. Существует ли более легкий способ передать это с SOAP, или он должен содержаться в XML? Это работает, но я должен был увеличить отправление и получить буфер к большому значению. Сколько слишком много?

При передаче двоичного файла в XML, поскольку массив кажется действительно неэффективным, но я не вижу способа прикрепить двоичное вложение с помощью.NET.

6
задан abatishchev 12 April 2011 в 05:47
поделиться

2 ответа

В виде массива? Вы имеете в виду, что отправляете

<byte>8</byte>
<byte>127</byte>

и т. Д.? Если это так, то вы, безусловно, можете улучшить его, предварительно преобразовав массив байтов в шестнадцатеричную строку, например.

<codedArray>087F09AFBD.....</codedArray>

Это наиболее распространенный подход для отправки изображений и т. Д. Через SOAP. Однако даже тогда вы правы, сомневаясь в этом. Вам действительно стоит посмотреть на другие, более RESTful протоколы передачи, ИМХО.

4
ответ дан 17 December 2019 в 00:06
поделиться

На самом деле вам не следует отправлять двоичную информацию с помощью веб-службы. Это как бы сводит на нет смысл использования веб-сервиса, совместимости. В идеале вы должны сериализовать свой объект как xml. Однако, если вы отправляете информацию, которая по своей сути является двоичной, например изображение, вы наверняка можете поместить ее в полезную нагрузку вашего сообщения SOAP. Объем информации на самом деле зависит от того, как долго вы хотите ждать и насколько быстро работает ваша сеть. Я не верю, что существует какое-либо фактическое ограничение на размер информации, которую вы можете отправить. Если это действительно много (50 мегабайт + кажется произвольно большим числом), вы можете рассмотреть альтернативные транспортные протоколы, такие как потоковая передача через сокет.

1
ответ дан 17 December 2019 в 00:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: