Я всегда использую HTTP-клиент Apache для вызова внешних веб-сервисов, независимо от того, является ли он SOAP или REST с использованием JSON или XML или любого другого формата данных.
Причина в том, что : На самом деле более 50% всех веб-сервисов не соответствуют стандартам. Когда вы используете фреймворки, работать со стандартами часто бывает нелегко. Но с помощью HTTP-клиента Apache легко реализовать обходные пути для любых возможных ситуаций, например:
- Исправить неверно XML Пространства имен или контент путем поиска / замены перед его анализом.
- Обработка кодов результатов HTTP нестандартным способом
- Отправка и получение настраиваемых заголовков HTTP
- Использование запросов, которые объединяют параметры GET (Url-) с телом POST
- non -стандартное шифрование
- нестандартная аутентификация (не все, что они называют OAuth2, на самом деле OAuth2)
- Работа с сертификатами - даже самодельные сертификаты, не соответствующие ни одному root сертификату
Все это может показаться вам смешным, но это очень часто случается в проектах, в которых я принимал участие. HTTP-клиент Apache дает вам полный доступ к HTTP-протоколу и его легко понять.
Вы по-прежнему можете маршалировать и демаршалировать объекты в XML / JSON, используя свой фреймворк. Но лучше держать под контролем множество мелких деталей HTTP-коммуникации.