:: Visual Foxpro, Foxpro for DOS
Запустить функцию на Web-сервисе
Аркадий
Автор

Сообщений: 252
Откуда: Санкт-Петербург
Дата регистрации: 30.11.2005
Подскажите, пожалуйста, можно ли через объект "MSXML2.XMLHTTP" или каким-либо другим, доступным фоксу способом, запустить функцию на web-сервисе, не зная примера SOAP-запроса (как на Java).
Поставщик сервиса в описании предоставил только имена функций и описание параметров/структур.
Ratings: 0 negative/0 positive
Re: Запустить функцию на Web-сервисе
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
"Запросто", надо подобрать только режимы обмена, хоть путем проб и ошибок, читая ответы сервера, а лучше где-нибудь подсмотреть, на рабочей системе.
Ratings: 0 negative/0 positive
Re: Запустить функцию на Web-сервисе
Аркадий
Автор

Сообщений: 252
Откуда: Санкт-Петербург
Дата регистрации: 30.11.2005
А что надо писать в Send()?

Вот одна из простейших функций
GetUpmListResponsegetUpmList (UserInfouserInfo, GetListRequest request)

Входные параметры:
Тип Параметр Описание Обязательное поле
UserInfo userInfo сведения о пользователе Да
GetListRequest request параметры запроса (составной тип) Да

userInfo - это логин и пароль
GetListRequest - тоже набор значений

Не представляю, как надо действовать, как это отправить.
Ratings: 0 negative/0 positive
Re: Запустить функцию на Web-сервисе
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Не знаю про SOAP, нужен ли по спецификации. Все таки спецификацию надо бы иметь... Поиском ищется документ с такими ф-иями, там есть и описалово (слова "wsdl").
veb-servisy_eis_oms.uz_.upm_ - действительно, просто описание методов...
10.20.31.195 - якобы описание, но у меня здесь не открывается...

Для первых экспериментов можно посылать в виде GET-запроса (просто в браузере) в 10.20.31.195 /ws, посмотреть как реагирует сервер. В Send посылается тело запроса (POST-схема посылки, в GET-схеме все выражается в одной адресной строке)
Пример GET-схемы h t t p://forum.foxclub.ru/read.php?29,820888 где
forum.foxclub.ru - адрес сервиса
read.php - "метод", хотя имя метода тоже может надо передавать как параметр
? - разделитель параметров запроса
29,820888 - первый параметр запроса
параметры разделяются символом &

Все это возможно придется закодировать в UTF-8, и в URL-кодирование обернуть, если параметры языковые, т.е. символы не ASCII
(почитай на форуме, тут полно примеров)

В POST-схеме все тоже самое, только параметры запроса надо передавать в Send

Доб. Почитал про wsdl - habr.com
REST-схема общения с сервером (это схема общения приближенная к HTTP-запросам) проста:
"" Проверим работу нашего сервиса. Для этого достаточно передать параметры вызова метода в сроке GET-запроса (в браузере или из XMLHTTP-запроса):
?method=getExchange&code=840&date=2008-11-29
или
?method=getExchange&arg1=840&arg2=2008-11-29



Исправлено 1 раз(а). Последнее : of63, 10.01.20 11:08
Ratings: 0 negative/0 positive
Re: Запустить функцию на Web-сервисе
Аркадий
Автор

Сообщений: 252
Откуда: Санкт-Петербург
Дата регистрации: 30.11.2005
Спасибо! Если не удастся добиться примеров SOAP-запросов, попробую такие строчки.
Не нашёл только, как передать в строке структуры; что если их несколько и в них параметры имеют одинаковые имена? Как это оформить?
Ratings: 0 negative/0 positive
Re: Запустить функцию на Web-сервисе
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Вместо GET-запроса можно послать POST-запрос, тогда в этом .Send можно указать любую длинную строку.
Собственно "структура" - может это просто XML-структура, просто строка. Тогда в Content-Type (т.н. "заголовки запроса") надо указать что это xml/txt ...как то так... Надо пробовать и бороться. При таком описалове придется снифферить рабочий обмен с сервисом, т.е. надо иметь рабочую систему.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 29 (Гостей: 29)

© 2000-2024 Fox Club 
Яндекс.Метрика