Веб-сервис в Delphi 5 - PullRequest
       19

Веб-сервис в Delphi 5

3 голосов
/ 06 августа 2010

С помощью Delphi 5 можно ли вызвать функцию в веб-сервисе, который разработан в VB.Net и имеет некоторые параметры и возвращает XML?Если да, то какие компоненты я буду использовать для вызова функции веб-службы и XML, который будет возвращен этой функцией?

Ответы [ 3 ]

2 голосов
/ 06 августа 2010

Я думаю, что поддержка веб-сервисов (SOAP) была введена в Delphi 6.
Переход на более новую версию Delphi, безусловно, будет самым простым способом начать работу.

Если вы не можете, тогда вам нужна внешняя библиотека, которая реализует поддержку SOAP.

Вы можете полностью перейти к протоколу HTTP (по сути, веб-службы SOAP отправляют определенную форму XML через HTTP или HTTPS), но это большая работа.

Возможно, вам повезет с RemObjects SDK : он поддерживает SOAP в Delphi , но я не уверен, что он поддерживает Delphi 5.

Позвоните RemObjects людям по телефону или по электронной почте: они действительно полезны, и вам может повезти.

- Йерун

2 голосов
/ 06 августа 2010

мы решаем подобную проблему здесь.Однако наше решение проблемы может быть не тем, что вы ищете.

У нас есть довольно сложный набор веб-сервисов, который мы должны использовать, и нам потребуется некоторое количество настроек и настроек.Чтобы не влиять на развитие Delphi-стороны нашей системы (очень долгие циклы выпуска), мы создали серию хуков, которые перенаправляют вызовы в DLL, также в Delphi.

Эта DLL имеет оченьпростая задача пересылки информации, полученной от вызова функции, немного отформатировать ее и протолкнуть через почти пустой TCP-сокет.

Оттуда информация поступает в интерфейсный движок, где мы можем поиграть в сопоставления и прочее.преобразования, которые должны быть выполнены до вызова услуг.Фактическая упаковка и вызов веб-службы выполняются в собственной среде движка (Java).

Наличие сокетного соединения для вызова движка позволяет значительно упростить и облегчить среду развертывания, в которой нам не нужно беспокоиться о ком /dcom или jni.

Звучит довольно сложно, но оказывается, что все сильно упростили.

Альтернативой было бы разработать COM DLL на C #, чтобы выполнить тяжелую работу на стороне сети и подключить ее к delphi.Это также было бы возможно, и в зависимости от среды развертывания может быть более простым решением.Мы решили не идти по этому пути, потому что наша установка довольно сложна: в ее состав входят толстый клиент, удаленный рабочий стол различной природы и очень тесная ИТ-структура для работы.Проще попросить открыть веб-доступ к одной машине и получить внутренний сокет к этому серверу от разных клиентов, чем просить открыть всех клиентов в интернет.

Иначе в чистом Delphi 5 доступ к веб-сервису не является чем-тоЯ бы назвал веселье, поэтому мой первый рефлекс здесь - использовать более дружественную для WS платформу и попытаться интегрировать их через какой-то мост (COM, JNI, stdcall DLL и т. Д.).

В любом случае, я надеюсь, что этопомогает.

1 голос
/ 06 августа 2010

Нет опыта использования веб-сервисов с использованием D5, но мой первый инстинкт - получить набор интернет-компонентов для веб-доступа и библиотеку DOM (ms xml, sax) для обработки xml.

Сказав это, вам может быть трудно найти компоненты, которые все еще поддерживают D5. Я использую интернет-компоненты Indy в одном из моих приложений D5, и есть специальная библиотека Indy SOAP для использования веб-сервисов. http://www.indyproject.org/index.en.aspx

Еще одна интернет-библиотека, которая может оказаться полезной, - это пакет компонентов Интернета (ICS) Франсуа Пиетта: http://www.overbyte.be/frame_index.html

Что касается обработки xml, эта страница в Руководстве по XML для Delphi Developer поможет вам в этом: http://keith -wood.name / DelphiXML / Software / index.html

...