mirror of
https://github.com/vbondarevsky/Connector.git
synced 2024-11-24 08:42:15 +02:00
parent
d008ec0315
commit
aa75f39159
@ -223,6 +223,12 @@ XML =
|
||||
Результат = КоннекторHTTP.КакДвоичныеДанные(КоннекторHTTP.Get("http://httpbin.org/image/png"));
|
||||
```
|
||||
|
||||
### Чтение ответа XML как XDTO
|
||||
Метод `КакXDTO` преобразует ответ XML в `ОбъектXDTO`.
|
||||
```bsl
|
||||
Результат = КоннекторHTTP.КакXDTO(Ответ);
|
||||
```
|
||||
|
||||
## GZip-кодирование тела запроса
|
||||
**Коннектор** может автоматически сжимать тело запроса `GZip`.
|
||||
Для этого нужно добавить заголовок `Content-Encoding` = `gzip`.
|
||||
|
@ -472,6 +472,44 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает ответ сервера в XDTO.
|
||||
//
|
||||
// Параметры:
|
||||
// Ответ - Структура - ответ сервера на отправленный запрос.
|
||||
// См. описание возвращаемого значения ВызватьМетод.
|
||||
// ПараметрыЧтенияXML - ПараметрыЧтенияXML - Параметры чтения, которые будут использованы при чтении данных XML
|
||||
// Подробнее см. в синтакс помощнике метод ЧтениеXML.ОткрытьПоток
|
||||
// НаборСхемXML - НаборСхемXML - Набор схем XML, используемых при проверке читаемого документа XML.
|
||||
// Если набор схем указан, но не проверен и включена проверка документа XML, то будет выполнена проверка набора схем
|
||||
// Подробнее см. в синтакс помощнике метод ЧтениеXML.ОткрытьПоток
|
||||
// Кодировка - Строка, КодировкаТекста - Позволяет задать кодировку.
|
||||
// Подробнее см. в синтакс помощнике метод ЧтениеXML.ОткрытьПоток
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбъектXDTO - ОбъектXDTO, СписокXDTO - тип возвращаемого значения может быть любым
|
||||
// из поддерживаемых сериализацию в XDTO
|
||||
//
|
||||
Функция КакXDTO(Ответ,
|
||||
ПараметрыЧтенияXML = Неопределено,
|
||||
НаборСхемXML = Неопределено,
|
||||
Кодировка = Неопределено) Экспорт
|
||||
|
||||
ДвоичныеДанные = РаспаковатьОтвет(Ответ);
|
||||
ПотокДляЧтения = ДвоичныеДанные.ОткрытьПотокДляЧтения();
|
||||
|
||||
Если Не ЗначениеЗаполнено(Кодировка) Тогда
|
||||
Кодировка = Ответ.Кодировка;
|
||||
КонецЕсли;
|
||||
|
||||
ЧтениеXML = Новый ЧтениеXML;
|
||||
ЧтениеXML.ОткрытьПоток(ПотокДляЧтения, ПараметрыЧтенияXML, НаборСхемXML, Кодировка);
|
||||
|
||||
ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
|
||||
|
||||
Возврат ОбъектXDTO;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ВспомогательныеФункции
|
||||
|
@ -190,6 +190,10 @@
|
||||
<app:functionality>BackgroundAudioRecording</app:functionality>
|
||||
<app:use>false</app:use>
|
||||
</app:functionality>
|
||||
<app:functionality>
|
||||
<app:functionality>AllFilesAccess</app:functionality>
|
||||
<app:use>false</app:use>
|
||||
</app:functionality>
|
||||
</UsedMobileApplicationFunctionalities>
|
||||
<StandaloneConfigurationRestrictionRoles/>
|
||||
<MobileApplicationURLs/>
|
||||
|
@ -71,6 +71,7 @@
|
||||
Тесты.Добавить("Тест_POST_MultipartFormData_ФайлыИПоляФормы");
|
||||
Тесты.Добавить("Тест_ПараметрыЗапросаТолькоКлюч");
|
||||
Тесты.Добавить("Тест_ОтправкаXml");
|
||||
Тесты.Добавить("Тест_ПрочитатьОтветКакXDTO");
|
||||
Тесты.Добавить("Тест_СложныеПараметрыЗапроса");
|
||||
Тесты.Добавить("Тест_PostПустойJson");
|
||||
Если ТестироватьАутентификациюAWS4_HMAC_SHA256 Тогда
|
||||
@ -823,6 +824,104 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Тест_ПрочитатьОтветКакXDTO() Экспорт
|
||||
|
||||
ТекстОтветXML = Тест_ПрочитатьОтветКакXDTO_ТекстОтветаXML();
|
||||
|
||||
ПолноеИмяФайла = ПолучитьИмяВременногоФайла("xml");
|
||||
|
||||
ФайлТекст = Новый ЗаписьТекста(ПолноеИмяФайла, КодировкаТекста.UTF8);
|
||||
ФайлТекст.ЗаписатьСтроку(ТекстОтветXML);
|
||||
ФайлТекст.Закрыть();
|
||||
|
||||
ДвоичныеДанныеОтвет = Новый ДвоичныеДанные(ПолноеИмяФайла);
|
||||
УдалитьФайлы(ПолноеИмяФайла);
|
||||
|
||||
Заголовки = Новый Соответствие;
|
||||
Заголовки.Вставить("Content-Type", "text/xml; charset=utf-8");
|
||||
|
||||
ПодготовленныйОтвет = Новый Структура;
|
||||
ПодготовленныйОтвет.Вставить("Тело", ДвоичныеДанныеОтвет);
|
||||
ПодготовленныйОтвет.Вставить("Заголовки", Заголовки);
|
||||
ПодготовленныйОтвет.Вставить("Кодировка", "UTF-8");
|
||||
|
||||
ОтветXDTO = КоннекторHTTP.КакXDTO(ПодготовленныйОтвет);
|
||||
|
||||
ОтветXDTO_Attachment = ОтветXDTO.Attachments.Attachment;
|
||||
|
||||
УтверждениеВерно(ТипЗнч(ОтветXDTO), Тип("ОбъектXDTO"));
|
||||
УтверждениеВерно(ОтветXDTO.Id, "1642606");
|
||||
УтверждениеВерно(ТипЗнч(ОтветXDTO_Attachment), Тип("СписокXDTO"));
|
||||
УтверждениеВерно(ОтветXDTO_Attachment.Количество(), 2);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция Тест_ПрочитатьОтветКакXDTO_ТекстОтветаXML()
|
||||
|
||||
ТекстОтветXML = "
|
||||
|<Document>
|
||||
|<Id>1642606</Id>
|
||||
|<TypeId>65</TypeId>
|
||||
|<TypeName>Документ</TypeName>
|
||||
|<DocumentTypeCode>DOCUMENT</DocumentTypeCode>
|
||||
|<Description>Документ тест 00001 от 21.05.2021</Description>
|
||||
|<BarcodeType>None</BarcodeType>
|
||||
|<SenderId>12776</SenderId>
|
||||
|<ReceiverId>48519</ReceiverId>
|
||||
|<ParticipantId>12776</ParticipantId>
|
||||
|<Status>Received</Status>
|
||||
|<Date>2021-05-21T00:00:00</Date>
|
||||
|<RequestSign>true</RequestSign>
|
||||
|<Number>ТЕСТ 00001</Number>
|
||||
|<IsMarked>false</IsMarked>
|
||||
|<Created>2021-05-21T10:32:02</Created>
|
||||
|<SendDate>2021-05-21T10:32:43</SendDate>
|
||||
|<ReceiveDate>2021-05-21T10:32:43</ReceiveDate>
|
||||
|<IsDocflowCompleted>false</IsDocflowCompleted>
|
||||
|<Comment>ТЕСТ Документ </Comment>
|
||||
|<Type>Document</Type>
|
||||
|<FormType>Document</FormType>
|
||||
|<SellerCode>ИдентификаторЭДООтправитель</SellerCode>
|
||||
|<BuyerCode>ИдентификаторЭДОПолучатель</BuyerCode>
|
||||
|<Filename>ФайлОсновной.xlsx</Filename>
|
||||
|<ContractDescription />
|
||||
|<IsRoaming>false</IsRoaming>
|
||||
|<IsPrintable>false</IsPrintable>
|
||||
|<Relations>
|
||||
| <DocumentRelation>
|
||||
| <Id>1642606</Id>
|
||||
| <Description>Документ №ТЕСТ 00002 от 21.05.2021</Description>
|
||||
| </DocumentRelation>
|
||||
|</Relations>
|
||||
|<StatusName>Получен</StatusName>
|
||||
|<SenderName>ООО Отправитель</SenderName>
|
||||
|<ReceiverName>ООО Получатель</ReceiverName>
|
||||
|<ExistRouteSigner>false</ExistRouteSigner>
|
||||
|<DocumentRelationType>Productive</DocumentRelationType>
|
||||
|<Attachments>
|
||||
| <Attachment>
|
||||
| <Id>44624</Id>
|
||||
| <Uuid>8711ca1b76794467ba74529d2bb01e3e</Uuid>
|
||||
| <DocumentId>0</DocumentId>
|
||||
| <Filename>ТестФайл.xlsx</Filename>
|
||||
| <Content />
|
||||
| </Attachment>
|
||||
| <Attachment>
|
||||
| <Id>44625</Id>
|
||||
| <Uuid>f6d8e6cdcbf846f4b97d5ab8e18d1b79</Uuid>
|
||||
| <DocumentId>0</DocumentId>
|
||||
| <Filename>ТестФайл2.pdf</Filename>
|
||||
| <Content />
|
||||
| </Attachment>
|
||||
|</Attachments>
|
||||
|<StatusChanged>2021-05-21T10:32:44</StatusChanged>
|
||||
|</Document>
|
||||
|";
|
||||
|
||||
Возврат ТекстОтветXML;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура Тест_СложныеПараметрыЗапроса() Экспорт
|
||||
|
||||
Результат = КоннекторHTTP.GetJson(
|
||||
|
Loading…
Reference in New Issue
Block a user