|
|
|
WSСсылка помогите разобраться. | ☑ | ||
|---|---|---|---|---|
|
0
yakton
06.10.15
✎
15:22
|
Поначалу все показалось очень просто... однако сервис требует при выполнении SetRequestForSubmit отправить объект inns типа ArrayOfString, который прописан в файле wsdl (на всякий случай реальные ссылки убрал... не знаю в общий доступ можно или нет...)
Кто может подсказать как выгружать такие типы? ВС=WSСсылки.WSСсылка2; ВебСервис = ВС.СоздатьWSПрокси("https://api.......ru/api", "ApiSoapService", "ApiSoapPort"); значение=ВебСервис.Login("test","test"); ТипArrayOfString = ВебСервис.ФабрикаXDTO.Тип("https://api.......ru/api", "ArrayOfString"); ЗначениеArrayOfString = ВебСервис.ФабрикаXDTO.Создать(ТипArrayOfString); ЗначениеArrayOfString.Добавить("6300000000"); //з1=ВебСервис.SetRequestForSubmit("6300000000"); з1=ВебСервис.SetRequestForSubmit(ЗначениеArrayOfString); |
|||
|
1
Cyberhawk
06.10.15
✎
15:25
|
"на всякий случай реальные ссылки убрал" // Это почти всегда не ссылки, прикинь
А вопрос-то в чем, что не получается, какая ошибка? |
|||
|
2
yakton
06.10.15
✎
15:39
|
не успел дописать отвлекли:) в таком варианте пишет недостаточно фактических параметров придобавлении ЗначениеArrayOfString.Добавить("6300000000");
а если убрать это и раскоментировать, попробовать отправить сразу строку, то ругается на несоответствие типов.... Вобщемто вопрос как добавить? потому что второй вариант совсем неправильный... |
|||
|
3
Serginio1
06.10.15
✎
17:31
|
Потому, что у ArrayOfString должно быть свойство к которому и нужно добавлять. Посмотри в отладчике ТипArrayOfString или в схеме
|
|||
|
4
yakton
06.10.15
✎
19:36
|
Я либо не туда смотрю, либо такого свойства нет... вот что в отладчике... Что за КоллекцияСвойствXDTO и как к ней обратиться не понимаю:
ТипArrayOfString {https://api....ru/api}ArrayOfString ТипОбъектаXDTO URIПространстваИмен "https://api....ru/api" Строка Абстрактный Ложь Булево БазовыйТип {http://www.w3.org/2001/XMLSchema}anyType ТипОбъектаXDTO Имя "ArrayOfString" Строка Открытый Ложь Булево Последовательный Ложь Булево Свойства КоллекцияСвойствXDTO КоллекцияСвойствXDTO Смешанный Ложь Булево Упорядоченный Истина Булево |
|||
|
5
Casey1984
06.10.15
✎
19:40
|
ArrayOfString что из себя представляет?
|
|||
|
6
yakton
06.10.15
✎
21:08
|
затрудняюсь ответить поэтому вот скриншот... если нужно что-то другое подскажи где посмотреть
https://yadi.sk/i/boUgKK6UjZLZG |
|||
|
7
yakton
07.10.15
✎
10:25
|
Есть идеи что с ArrayOfString делать? Есть пример передачи в документации может поможет, естественно не в 1с пример...
|
|||
|
8
yakton
07.10.15
✎
10:25
|
Пример передачи авторизационного ключа в методе «SetRequestForSubmit»:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:api="http://api.,,,,,.ru/api" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> <soapenv:Header> <authenticate>meulr41c6up5uoc2ehufeslc14</authenticate> </soapenv:Header> <soapenv:Body> <api:SetRequestForSubmit soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <inns xsi:type="api:ArrayOfString" soapenc:arrayType="xsd:string[2]"> <inn xsi:type="xsd:string">7842311056</inn> </inns> </api:SetRequestForSubmit> </soapenv:Body> </soapenv:Envelope> |
|||
|
9
yakton
07.10.15
✎
13:00
|
Есть идеи? куда смотреть, что делать?
|
|||
|
10
yakton
07.10.15
✎
14:27
|
Неужели 1с с таким не справиться?
|
|||
|
11
Serginio1
07.10.15
✎
14:47
|
Смотри КоллекцияСвойствXDTO
|
|||
|
12
Serginio1
07.10.15
✎
14:57
|
(8) Нет такой не поймет. Сайт на PHP?
|
|||
|
13
Serginio1
07.10.15
✎
15:00
|
Хотя посмотри здесь http://habrahabr.ru/sandbox/31020/
|
|||
|
14
Serginio1
07.10.15
✎
15:21
|
оооо у тебя еще и
<soapenv:Header> <authenticate>meulr41c6up5uoc2ehufeslc14</authenticate> </soapenv:Header> Штатно не пойдет |
|||
|
15
yakton
07.10.15
✎
16:57
|
сайт на php.
а почему штатно не пойдет? значение=ВебСервис.Login("test","test"); проходит без проблем возвращает код сессии. Спасибо за ссылку на харбаре, буду разбираться, мож поможет.. |
|||
|
16
Serginio1
07.10.15
✎
17:26
|
После логина ты получишт токен который надо передавать в Header
v8: soap:Header |
|||
|
17
PaulBC
08.10.15
✎
03:45
|
(0) Попробуй
ЗначениеArrayOfString.item.add("6300000000"); |
|||
|
18
yakton
12.10.15
✎
00:06
|
(17) Так не работает... ругается что item нету...
Частично разобрался с типами: ТипArrayOfString = ВебСервис.ФабрикаXDTO.Тип("https://api.....ru/api", "ArrayOfString"); ЗначениеArrayOfString = ВебСервис.ФабрикаXDTO.Создать(ТипArrayOfString); ТипЗначенияXDTO=ВебСервис.ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "string"); ЗначенияXDTO = ВебСервис.ФабрикаXDTO.Создать(ТипЗначенияXDTO,"6300000000");//тип ТипСтрокаXDTO=ВебСервис.ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "anyType"); СтрокаXDTO = ВебСервис.ФабрикаXDTO.Создать(ТипСтрокаXDTO); СтрокаXDTO.Добавить(ФормаXML.Элемент, "https://api....ru/api", "inn", ЗначенияXDTO) ; |
|||
|
19
hhhh
12.10.15
✎
00:09
|
.items
|
|||
|
20
yakton
12.10.15
✎
00:15
|
(16) Однако, когда отправляеш СтрокаXDTO в
з1=ВебСервис.SetRequestForSubmit(СтрокаXDTO); ругается что сессия не авторизована... Так есть ли способ в Header добавить строку авторизации? или как по ссылке вручную формировать пакеты и отправлять через COMОбъект("Msxml2.SERVERXMLHTTP")? |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |