|
|
Проблема с параметром (веб-сервис) |
☑ |
|
0
1ctube
10.07.19
✎
11:49
|
Добрый день. Изучаю веб-сервисы, хочу попробовать "яндекс speller".
Вот код:
Прокси = WSСсылки.Speller.СоздатьWSПрокси(";, "SpellService", "SpellServiceSoap");
ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить(";);
WSПараметр = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
Ошибка возникает на последней строчке: "Несоответствие типов (параметр номер '1')".
Смотрю в отладчике, "ТипWSПараметра " имеет Тип: Неопределено.
Кто-нибудь работал с этим веб-сервисом? Можете подсказать почему не получается получить тип параметра?
П.С. Метод "checkText" имеет обязательный параметр "text" тип String
|
|
|
1
Cyberhawk
10.07.19
✎
12:03
|
Ну так отладчиком в пакеты загляни для начала
|
|
|
2
Nikifforoff96
10.07.19
✎
12:04
|
я всегда начинаю с создания WSОпределения, потом получаю из него сервис, из сервиса получаю точку подключения, из точки подключения операцию сервиса. Параметры создаю через WSОпределения. Примерно так
ВСОпределение = Новый WSОпределения(АдресСервера, ИмяПользователя, ПарольПользователя);
ВСервис = ВСОпределение.Сервисы.Получить("URI пространство имён","Сервис");
ВТочкаВхода = ВСервис.ТочкиПодключения.Получить("ТвойсервисSoap");
ВОперация = ВТочкаВхода.Интерфейс.Операции.Получить("НужнаяФункцияВСервисе");
ПараметрXDTO = ВСОпределение.ФабрикаXDTO.Создать(ВОперация.Параметры.Получить("Параметр").Тип, Параметр);
ВСПрокси = Новый WSПрокси(ВСОпределение,"URI пространство имён","Сервис","СервисSoap",,,, АдресСервера);
ВСПрокси.Пользователь = ИмяПользователя;
ВСПрокси.Пароль = ПарольПользователя;
Авторизация = ВСПрокси.НужнаяФункцияВСервисе(ПараметрXDTO);
|
|
|
3
1ctube
10.07.19
✎
12:09
|
(1) В отладчике "Переменная не определена(Пакеты)"...
|
|
|
4
PiotrLoginov
10.07.19
✎
12:17
|
(3) Прокси.ФабрикаXDTO.Пакеты
|
|
|
5
1ctube
10.07.19
✎
12:20
|
(4) В отладчике: КоллекцияПакетовXDTO.
Когда раскрываю значение, то 2 строчки, первая с пространством имён ";
Вторая: ";
|
|
|
6
catena
10.07.19
✎
12:25
|
Прокси = WSСсылки.Speller.СоздатьWSПрокси(";, "SpellService", "SpellServiceSoap");
ТипWSПараметра = Прокси.ФабрикаXDTO.Тип(";);
WSПараметр = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
|
|
|
7
Cyberhawk
10.07.19
✎
13:26
|
(5) А зачем ты получаешь тип с именем метода?
И зачем получать тип по имени от конкретно пакета, а не от фабрики?
|
|
|
8
ptiz
10.07.19
✎
14:04
|
(0) С яндекс.спеллером вообще можно готовый текст передавать:
Ответ = ПроксиВебСервиса.checkText(ТекстДляПроверки);
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший