Имя: Пароль:
1C
 
Помогите с SOAP сервисом
0 korstin
 
28.09.16
11:16
Есть SOAP-сервис (закрытый), необходимо выполнить запрос

Пример запроса:
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">;
  <soap12:Body>
    <BulkSearchByCodes xmlns="http://myurl/soap">;
      <codes>
        <CodeSet>
          <INN>string</INN>
          <KPP>string</KPP>
        </CodeSet>
      </codes>
    </BulkSearchByCodes>
  </soap12:Body>
</soap12:Envelope>

Пример ответа:
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">;
  <soap12:Body>
    <BulkSearchByCodesResponse xmlns="http://myurl/soap">;
      <result>
        <data>
          <card>
            ...
          </card>
          <card>
            ...
          </card>
        </data>
        <truncated>boolean</truncated>
      </result>
    </BulkSearchByCodesResponse>
  </soap12:Body>
</soap12:Envelope>
1 korstin
 
28.09.16
11:18
WS Ссылку проимпортировал

ВебСсылка = WSСсылки.МояСсылка;
ssl = Новый ЗащищенноеСоединениеOpenSSL();
ВебСервис = ВебСсылка.СоздатьWSПрокси("http://myurl/soap";, "SearchService", "SearchServiceSoap12", , , ssl);
ТипWSПараметра = ВебСервис.ФабрикаXDTO.Пакеты.Получить("http://myurl/soap").Получить("BulkSearchByCodes";);
WSПараметр = ВебСервис.ФабрикаXDTO.Создать(ТипWSПараметра);
ТипArrayOfCodeSet = ВебСервис.ФабрикаXDTO.Тип("http://myurl/soap";, "ArrayOfCodeSet");
ТипCodeSet = ВебСервис.ФабрикаXDTO.Тип("http://myurl/soap";, "CodeSet");

ЗначениеArrayOfCodeSet = ВебСервис.ФабрикаXDTO.Создать(ТипArrayOfCodeSet);    

ЗначениеCodeSet = ВебСервис.ФабрикаXDTO.Создать(ТипCodeSet);
ЗначениеCodeSet.INN = "ааааа";
ЗначениеCodeSet.KPP = "ббббб";
ЗначениеArrayOfCodeSet.CodeSet.Добавить(ЗначениеCodeSet);

ЗначениеCodeSet = ВебСервис.ФабрикаXDTO.Создать(ТипCodeSet);
ЗначениеCodeSet.INN = "ввввв";
ЗначениеCodeSet.KPP = "ггггг";
ЗначениеArrayOfCodeSet.CodeSet.Добавить(ЗначениеCodeSet);

WSПараметр.codes = ЗначениеArrayOfCodeSet;
Результат = ВебСервис.BulkSearchByCodes(WSПараметр);
Для Каждого СтрокаДанных Из Результат.data Цикл
    Сообщить(СтрокаДанных);
КонецЦикла;
2 korstin
 
28.09.16
11:19
Прошу прощения, последние строки должны быть как

Для Каждого СтрокаДанных Из Результат.data.card Цикл
    Сообщить(СтрокаДанных);
КонецЦикла;
3 korstin
 
28.09.16
11:20
Так вот, возвращенных данных нет. Через SoapUI проверил - данные возвращаются с этими параметрами.

Знающие, подскажите, где ошибка и куда копать?
4 korstin
 
28.09.16
11:56
Вопрос снят, помог Fiddler
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн