• 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

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


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

2 ответа на этот вопрос

  • 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" - это некий мусорный заголовок, всегда одинаковый.

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

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

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

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