Перейти к содержанию
  • Регистрация
  • 0
Plimb

WEB сервис: как преобразовать результат метода в формате ValueStorage в строку?

Вопрос

Добрый день!

помогите плз:  

при анализе ws ссылки мастер сделал unit и создал вот такой тип :      ValueStorage    =  type TByteDynArray;

  Веб сервис возвращает результат метода в формате ValueStorage -  как в Delphi 10.2 преобразовать значение типа  TByteDynArray (ValueStorage)  в строку (или например бинарные данные) ?
  должна же быть какая то функция , которая одним вызовом это выполнит ?

 

 

--------- веб сервис возвращает данные в таком  виде - с типом ValueStorage    ---------

{"#",e199ca70-93cf-46ce-a54b-6edc88c3a296,
{#base64:AgFTS2/0iI3BTqDV67a9oKcNbZFRSsNAEIb1UcE7lHm22SSChBBTMFh8sCK2gm+y

JEMSSHZLNiYV8QR6BC/hQ0Eo6hW2F9EruEmTNkr3bf75/mH/me/dnfr9LL4eYQyH

4AxmadIrMBMxZycAhqYD9JD5PIhZqISbybBvAQzcg32nsFIR2iMUgobYU0Ym7FpT

XJTnU5uQwtIMX8vuSbqiBIBy7jXWc6QBZpXQKmczP6IsxKuEMle+yk/5Jt/lYvki

P5bPcn7nIcszmnhRnAQeTacO2eLrzJtw1zi2WkpVnd4w46mr60bbretOvwl2yV3T

bJmN1gGv0ce4wKAi19M6YhWY/E/ceE958LBe3Za9BTSn6gIrYibiDVKWpVYeaTwL

ialSkNvRxdiPMKX9mImcMh8BSHWmv1934ekX}
}

----------- такие данные  --------------

<?xml version="1.0" encoding="UTF-8"?>
<v8msg:Message xmlns:v8msg="http://v8.1c.ru/messages">
    <v8msg:Header>
        <v8msg:ExchangePlan>Мобильные_CentralChildCamp</v8msg:ExchangePlan>
        <v8msg:To>168</v8msg:To>
        <v8msg:From>001</v8msg:From>
        <v8msg:MessageNo>24</v8msg:MessageNo>
        <v8msg:ReceivedNo>23</v8msg:ReceivedNo>
    </v8msg:Header>
    <v8msg:Body xmlns:v8="http://v8.1c.ru/data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
</v8msg:Message>

 

 

Изменено пользователем Plimb

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 0

Эта бредятина не из 1С случаем? ?

А раскодировать эту муру, рожденную разумом под тяжелыми наркотиками вот так:

Из ваших данных, берем только

{#base64:AgFTS2/0iI3BTqDV67a9oKcNbZFRSsNAEIb1UcE7lHm22SSChBBTMFh8sCK2gm+y
JEMSSHZLNiYV8QR6BC/hQ0Eo6hW2F9EruEmTNkr3bf75/mH/me/dnfr9LL4eYQyH
4AxmadIrMBMxZycAhqYD9JD5PIhZqISbybBvAQzcg32nsFIR2iMUgobYU0Ym7FpT
XJTnU5uQwtIMX8vuSbqiBIBy7jXWc6QBZpXQKmczP6IsxKuEMle+yk/5Jt/lYvki
P5bPcn7nIcszmnhRnAQeTacO2eLrzJtw1zi2WkpVnd4w46mr60bbretOvwl2yV3T
bJmN1gGv0ce4wKAi19M6YhWY/E/ceE958LBe3Za9BTSn6gIrYibiDVKWpVYeaTwL
ialSkNvRxdiPMKX9mImcMh8BSHWmv1934ekX}

1. Сначала удаляем из это строки мусорные непечатаемые знаки, такие как перевод строки (#10 , #13), ну и все другое (может быть и табуляция и просто случайный мусор) (их ОЧЕНЬ любит вставлять 1С везде и всюду)

2. Вырезаем спереди "{#base64 :" и сзади "}" . 

3. С оставшейся строкой вам нужно сделать base64 decode.

И вот мы на пути к успеху. Почти. Скорее всего вы получите не читаемые бинарные данные.

4. Скорее всего это окажется zip архив. Вам нужно его распаковать. И вот теперь у вас будет то что вам нужно (правда возможно с обилием мусора из не печатаемых символов, но его можно почистить).

 

P.S. да, совсем забыл предупредить - после пункта 2, вам нужно выполнить еще одно : вырезать из начала строки "AgFTS2/0iI3BTqDV67a9oKcN" - это некий мусорный заголовок, всегда одинаковый.

Изменено пользователем Евгений Корепов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...