ОтправитьДляОбработки неверно отправляет заголовки

1. nbeliaev 830 19.07.18 05:58 Сейчас в теме
Приветствую.
Необходимо в заголовках передать некую строку, обернутую Base64. Нативными средствами платформы получаю необходимые данные
YWRtaW5kZW1vOjA5ODc2NUBhOjZhOGE1YTNmMjgzMjQ3NmM4ZGU4NGU0YjAzNTNl
MGIwDQo=

Дальше добавляю в заголовки запроса эти данные под неким ключом Key и вызываю метод ОтправитьДляОбработки объекта HTTPСоединение. Сервер возращает код состояния 400. С помощью Fiddler удалось выяснить, что пакет, который в итоге отправляет платформа, в заголовках имеет тот же ключ Key, но данные уже такие
YWRtaW5kZW1vOjA5ODc2NUBhOjZhOGE1YTNmMjgzMjQ3NmM4ZGU4NGU0YjAzNTNl
MGIwDQo=:

То есть добавляется символ :. Как это побороть?
+
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
13. Sashares 34 19.07.18 10:29 Сейчас в теме +2 $m
(12)
Если присваивать в заголовок значение без переноса, то raw получается такой:
User-Agent: 1C+Enterprise/8.3
Accept: */*
Proxy-Connection: Keep-Alive
Authentication: YWRtaW5kZW1vOjA5ODc2NUBhOjhlYmVkNDRlYzQ2YjQzZTBiNWJlZTFiYjVm­<wbr>YjI5Nzk0DQo=
Content-Type: text/xml; charset=utf-8

Поэтому не понятно, почему не можете?
Берем строку в base64 выпиливаем из нее символы ПС, ВК, возможно другие, чтобы было все в одну строку.
Вставляем это значение в заголовок.
На закодированное значение это никак не влияет.
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nbeliaev 830 19.07.18 07:21 Сейчас в теме
(1) Если использовать КодироватьСтроку, то двоеточие не добавляется, но естественно и строка уже не валидная для декодирования base64. Только после РаскодироватьСтроку можно получить Base64Значение. Пробовал указывать кодировку в заголовке Content-Type: application/json; charset=UTF-8 - не помогло.
+
4. ben19791010 19.07.18 09:27 Сейчас в теме
(1)
добавляется символ :. Как это побороть?
предполагаю, что речь о поле ввода, если нет, то поправьте
а что если убрать в св-х положение заголовка? результат изменится?
+
8. ben19791010 19.07.18 09:57 Сейчас в теме
(1)
и вызываю метод ОтправитьДляОбработки

а до этого удалять : не вариант?
+
3. V.Stavinsky 271 19.07.18 08:53 Сейчас в теме
а обязательно это поле передавать в заголовках? нельзя в параметрах запроса?
+
6. nbeliaev 830 19.07.18 09:42 Сейчас в теме
(3) Это не поле ввода. При изменении положения ничего не поменялось
(5) (4) Передать в теле запроса не вариант. Поставщик API не будет переделывать сервис
Если в заголовок вставить любой ключ, в котором есть перенос строки, то платформа добавляет двоеточие. Пример
Headers.Insert("au", "fghdfh
				  |sdf")
+
7. Sashares 34 19.07.18 09:52 Сейчас в теме
(6) покажите пример запроса который надо отправить.
Не совсем понятно, по вашему примеру, куда именно платформа добавляет двоеточие?
При вставке заголовков в запрос заголовки вставляются как <Ключ заголовка>: <Значение заголовка>.
Поэтому не понятно, что именно не так.
+
5. Sashares 34 19.07.18 09:34 Сейчас в теме
Поддерживаю, можно же в теле запроса передать заголовки.
Лучше покажите raw запрос из fiddler'а, который надо получить в конечном итоге.
+
9. nbeliaev 830 19.07.18 10:01 Сейчас в теме
(5) raw
POST test HTTP/1.1
Host: apidemo.test.com
Proxy-Authorization: NTLM TlRMTVNTUAABAAAAB7IIogkACQA3AAAADwAPACgAAAAKAO5CAAAAD0xBUFRP­UC1BMVZCVVBKS1dPUktHUk9VUA==
User-Agent: 1C+Enterprise/8.3
Accept: */*
Connection: Keep-Alive
Content-Type: application/json; charset=UTF-8
Authentication: YWRtaW5kZW1vOjA5ODc2NUBhOjhlYmVkNDRlYzQ2YjQzZTBiNWJlZTFiYjVm­YjI5
Nzk0DQo= 
taxCode: 0106713804
Content-Length: 1492

{
"xmlData": "somexml",
"pattern": "",
"serial": ""
}
Показать
+
11. Sashares 34 19.07.18 10:15 Сейчас в теме
(9)Действительно, воспроизвел. Убрать перенос строки не вариант? Для base64 наличие/отсутствие переноса не должно как-либо вообще влиять. Кажется, есть смысл попробовать.
+
12. nbeliaev 830 19.07.18 10:19 Сейчас в теме
(11)В том то и дело, никакого переноса я не добавляю. Строка Base64 сама себя разделяет на фрагменты по 64 символа, но это все происходит только при отправке пакета. В этот процесс я уже вмешаться не могу.
+
13. Sashares 34 19.07.18 10:29 Сейчас в теме +2 $m
(12)
Если присваивать в заголовок значение без переноса, то raw получается такой:
User-Agent: 1C+Enterprise/8.3
Accept: */*
Proxy-Connection: Keep-Alive
Authentication: YWRtaW5kZW1vOjA5ODc2NUBhOjhlYmVkNDRlYzQ2YjQzZTBiNWJlZTFiYjVm­<wbr>YjI5Nzk0DQo=
Content-Type: text/xml; charset=utf-8

Поэтому не понятно, почему не можете?
Берем строку в base64 выпиливаем из нее символы ПС, ВК, возможно другие, чтобы было все в одну строку.
Вставляем это значение в заголовок.
На закодированное значение это никак не влияет.
+
14. nbeliaev 830 19.07.18 10:52 Сейчас в теме
(13) В общем проблема была в том, что Base64Строка вставляет символ перевода строки. А дальше уже из-за этого символа появлялось двоеточие. Выпилил ПС, двоеточие пропало.
Спасибо за наводку!
+
10. Timur.V 78 19.07.18 10:14 Сейчас в теме
Есть преобразование Base64 на 1С,
https://infostart.ru/public/252365/
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот