2010-06-07 3 views
8

Я знаю, что этот вопрос задавали здесь раньше, но я не думаю, что эти ответы были адекватны моим потребностям.Позвоните в .NET Webservice с Android

У нас есть веб-сервис SOAP, который используется для приложения iPhone, но вполне возможно, что нам нужна конкретная версия Android или прокси-сервер службы, поэтому у нас есть возможность пойти либо с SOAP, либо с JSON. У меня есть несколько опасения по поводу обоих методов:

SOAP решение:

  1. Можно ли генерировать Java исходный код из файла WSDL, если да, то он будет включать в себя какой-то прокси класс для вызова веб-сервиса и будет ли он работать в среде Android ?
  2. Google не предоставил какую-либо библиотеку SOAP на Android, поэтому мне нужно использовать 3rd party, любое предложение?
  3. Что касается производительности/накладных расходов с разбором и передачей SOAP xml по кабелю против решения JSON ?

JSON решение:

  1. Существует несколько классов в Android SDK, который позволит мне разобрать JSON, но он поддерживает общий разбор, как если я хочу, чтобы результат анализируется как сложный тип? Или мне нужно было бы реализовать это ?
  2. Я прочитал около 2 библиотек до здесь, на Stackoverflow, GSON a Джексон. В чем разница производительности и удобства использования (от разработчиков)? У вас есть ребята, у которых есть какой-либо опыт с из этих библиотек?

Поэтому, я думаю, большой вопрос в том, с каким методом идти?

Надеюсь, вы можете мне помочь. Заранее спасибо :-)

ответ

0

Я работаю над чем-то подобным, и хотя я не могу быть лучшим авторитетом в этом вопросе, я бы сказал, что 9 раз из 10 JSON - это то, как вы хотите. Не то, чтобы у мыла не было места, но для большинства вещей JSON будет проще, и если это не выглядит так, скорее всего, ваш сервис нуждается в рефакторинге, а не в подлинно сложном домене.

Добавлен бонус конечно, если вы хотите использовать один и тот же сервис на iPhone, Blackberry, WinMo7, сайт Ajax, или на самом деле где-нибудь еще, это будет гораздо лучше для вас :-) 0.02

Мой $

+0

Спасибо. Я пошел с решением json, так как он, скорее всего, будет использоваться и для ajax, и было очень легко разобрать json с Gson ;-) –

5

Я не могу много говорить о решении JSON. Но я некоторое время работал с SOAP на Android.

Вот мои комментарии относительно решения SOAP.

  1. Наиболее популярной библиотекой, которую я нашел для SOAP на устройствах Android, является kSOAP.
  2. Библиотека kSOAP по умолчанию не предоставляет способ генерации Java-классов из WSDL. Это большая проблема, если у вас есть WSDL с большим количеством методов. Я нашел проект (http://en.sourceforge.jp/projects/sfnet_wsdl2ksoap2/), который «претендует» на это. ПРИМЕЧАНИЕ. У меня нет. Я обнаружил это после того, как я реализовал текущую версию своего кода.
  3. Разбор XML имеет накладные расходы, и иногда это может быть проблемой. Исчерпывающие служебные данные будут зависеть от вашего контекста приложения и требований к производительности.В настоящее время я получаю приемлемую производительность, используя SOAP для отправки видеокадров (SOAP, содержащих кадры MJPEG с кодировкой base64). Для больших сообщений время разбора на Nexus One составляет порядка 150-200 мс (в зависимости от размера сообщения.)

Это может быть несвязанным, но я нашел это Google I/O session on building RESTFul applications для Android полезным. Я думаю, что они также выпустили JSON API in 2.2

Надеюсь, это поможет.

+1

Благодарим вас за ответ. Wsdl2ksoap2 звучит как интересный проект, но его пустой, хотя. Я не могу быть единственным, кто ищет такой инструмент, что вы, ребята, делаете, когда хотите потреблять довольно большой webservice (wsdl), пишите все это вручную? Я все еще надеюсь, что кто-то прокомментирует решение JSON :-) –

Смежные вопросы