Так просто в теории, но я никогда не был мастером настройки WCF. Я пытаюсь сделать следующее: у меня есть метод WCF, который соответствует этой подписи:
[OperationContract]
[WebInvoke(Method = "POST")]
Stream PostPackets(Stream rawPackets);
Все, о чем я действительно забочусь, это получить массив байтов с устройства Android/iPhone/Blackberry/любого другого типа в мою службу wcf, обработать массив и затем отправить обратно другой массив байтов. Мне все равно, это может выглядеть так:
[OperationContract]
[WebInvoke(Method = "POST")]
byte[] PostPackets(byte[] rawPackets);
Хотя все примеры, которые я вижу, похоже, используют Stream.
Я прочитал много разных статей и сообщений без прямого ответа о том, как это сделать вне контекста передачи файлов (что не входит в мои намерения). Вот проблемы, с которыми я сталкиваюсь:
1- Я предполагаю, что мне нужно использовать webHttpBinding, чтобы сделать эту службу RESTful. Это правильно? Если да, можете ли вы указать мне образец конфигурации?
2 - (И это абсолютно то, что я нигде не могу найти!) Мне нужно быть уверенным, что это не станет огромной проблемой для разработчиков устройств. Можете ли вы показать мне примеры устройств Android и iPhone, использующих службу RESTful И (очень важно), как они будут отправлять массив байтов в мою службу?
Пожалуйста, простите мой нубизм... Конфигурация WCF — это одна из тех вещей, которыми мне не приходится заниматься каждый день. Как только я разобрался со своей конфигурацией, я обычно иду дальше и никогда не трогаю ее до следующего проекта (который может занять очень много времени). Пожалуйста помоги!
ОБНОВЛЕНИЕ
Мой коллега предложил использовать обработчики http вместо wcf. Нам действительно нужно прибегать к этому?
например:
public void ProcessPackets (HttpContext context)
ОБНОВЛЕНИЕ 2:
Мне интересно, есть ли способ сделать это без JSON? Есть ли недостаток/альтернатива публикации массива как типа «текст/обычный»?