|
Передать параметр attachment в web сервис | ☑ | ||
---|---|---|---|---|
0
Смотрящий от 1С
30.09.13
✎
11:32
|
Имеем ссылку на сторонний веб сервис. Ссылку загрузили в конфигурацию.
Ссылка на загруженную структуру http://i60.fastpic.ru/big/2013/0930/7b/35806433a1a1c549a3834b8622c10b7b.jpg Пытаюсь передать параметр <xs:element name="data" type="xs:base64Binary" xmime:expectedContentTypes="application/octet-stream"/> Ругается на несоответствие параметров . WSDL: <?xml version="1.0" encoding="UTF-8"?> -<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://ws.dkbm.rsa.com/" targetNamespace="http://ws.dkbm.rsa.com/" name="KbmToService"> -<wsdl:types> -<xs:schema targetNamespace="http://ws.dkbm.rsa.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:tns="http://ws.dkbm.rsa.com/" version="1.0" elementFormDefault="unqualified"> <xs:import namespace="http://www.w3.org/2005/05/xmlmime"/> <xs:element name="attachment" type="tns:attachment"/> <xs:element name="getKbmTo" type="tns:getKbmTo"/> <xs:element name="getKbmToResponse" type="tns:getKbmToResponse"/> -<xs:complexType name="getKbmTo"> -<xs:sequence> <xs:element ref="tns:attachment" minOccurs="0"/> </xs:sequence> </xs:complexType> -<xs:complexType name="attachment"> -<xs:sequence> <xs:element name="data" type="xs:base64Binary" xmime:expectedContentTypes="application/octet-stream"/> </xs:sequence> </xs:complexType> -<xs:complexType name="getKbmToResponse"> -<xs:sequence> <xs:element name="return" type="tns:attachment" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:schema> </wsdl:types> -<wsdl:message name="getKbmToResponse"> <wsdl:part name="parameters" element="ns1:getKbmToResponse"> </wsdl:part> </wsdl:message> -<wsdl:message name="getKbmTo"> <wsdl:part name="parameters" element="ns1:getKbmTo"> </wsdl:part> </wsdl:message> -<wsdl:portType name="KbmToService"> -<wsdl:operation name="getKbmTo"> <wsdl:input name="getKbmTo" message="ns1:getKbmTo"> </wsdl:input> <wsdl:output name="getKbmToResponse" message="ns1:getKbmToResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType> </wsdl:definitions> Мой код: Определение = Новый WSОпределения("I:\Temp\тест выгрузки в РСА\wsdl\KbmToService_test.wsdl","пользователь","пароль",60); Прокси = Новый WSПрокси(Определение, "http://ws.dkbm.rsa.com/", "KbmToServiceService", "KbmToServicePort"); Прокси.Пользователь = "пользователь"; Прокси.Пароль = "пароль"; Тип = Прокси.ФабрикаXDTO.Тип("http://ws.dkbm.rsa.com/", "attachment"); Файл = Прокси.ФабрикаXDTO.Создать(Тип); Файл = Новый Файл("C:\Users\user\Desktop\Примеры файлов с Jira\zapros.xml.gz"); ФайлДвоичныеДанные = Новый ДвоичныеДанные(Файл.ПолноеИмя); ФайлаХранилищеЗначения = Новый ХранилищеЗначения(ФайлДвоичныеДанные, Новый СжатиеДанных(0)); ФайлОбмена = ФайлаХранилищеЗначения.Получить(); ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить("http://ws.dkbm.rsa.com/").Получить("attachment"); WSПараметр = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра); WSПараметр.data =Base64Строка(ФайлОбмена); Ответ = Прокси.getKbmTo(Base64Строка(ФайлОбмена)); На выходе ошибка "Ответ = Прокси.getKbmTo(Base64Строка(ФайлОбмена)); по причине: Несоответствие типов (параметр номер '1') " Каким образом отдать требуемый параметр сервису? |
|||
1
Смотрящий от 1С
30.09.13
✎
14:15
|
апну, WSDL в читаемом виде http://i57.fastpic.ru/big/2013/0930/30/597df913db07e0d275ecdd62fbe32230.jpg
|
|||
2
Смотрящий от 1С
01.10.13
✎
10:44
|
апну
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |