8 / 8 / 0
Регистрация: 04.12.2012
Сообщений: 409
|
|
1 | |
1C 8.x Кодировка utf-8 при отправке http запроса28.01.2016, 12:29. Показов 34789. Ответов 13
Метки нет (Все метки)
Добрый день уважаемые формучане !!!
Возник вопрос прошу помощи у гуру ... При подключении к системе ЕГАИС (1с УТ) на 2ух разных компютерах (2 разные ос) - разный результат отправки запросов. на одном получает ответы от утм (универсального транспортного модуля). На одном из компов сервер возвращает ошибку 500. Перед отправкой запроса в коде 1с используется метод для формирования http запроса (точное название не помню) - в котором указывается кодировка utf-8. до этого на этом же компютере (до переустановки ос) пытался отправлять запросы с помощью curl - через консоль - в ответ получал какуюто аброкадабру - после чего долго рылся в интернете и поменял что то со шрифтами ... (сейчас как раз этот момент уже не припомню ... ) Эти пляски тогда в итоге помогли ... В общем грешу на взаимодейсвие ОС со шрифтами и кодировкой utf-8 ... Уважаемые гуру подскажите из опыта где В ос вин7 можно посмотреть правильно ли ос распознает кодировку utf-8? и как ее настроить ? зы Понимаю что вопрос сыроват - очень плаваю в данном вопросе - попробовал изложить мои наблюдения ... надеюсь что кто нибудь меня поймет - по обрывочным сведениям ... Заранее огромное спасибо !!!
0
|
28.01.2016, 12:29 | |
Ответы с готовыми решениями:
13
IOException при отправке http запроса Виснет форма при отправке http запроса Кодировка при отправке json запроса в кириллице При отправке запроса ajax-ом нарушается кодировка символов кириллицы |
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
|
|
28.01.2016, 13:11 | 2 |
При создании тела запроса какую кодировку указываешь?
1
|
8 / 8 / 0
Регистрация: 04.12.2012
Сообщений: 409
|
|||||||||||
28.01.2016, 15:31 [ТС] | 3 | ||||||||||
Volexovich Спасибо за отзывчивость !!! Уважение !!!
Я конечно ничего не указываю - это код написан разработчиками
обратно УТМ (универсальный транспортный модуль) возвращает ошибку 500
Вот такая борода ... При этом при прочих равных - та же версия платформы и конфигурации и версии ос (но установочники ос были разными - сборки скорей всего какие то)- на другом компьютере ответ получает без проблем ... В чем на ваш взгляд ошибочка ? Заранее огромное спасибо !!!
0
|
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
|
|
28.01.2016, 15:43 | 4 |
Сообщение было отмечено andrey76 как решение
Решение
Это уже известная особенность в 1с, когда вызывается HTTPЗапрос.УстановитьТелоИзСтроки(), создается временный файл и его первый символ это BOM.
Я обходил эту проблему по другому, указывал кодировку "CESU-8", она сама BOM откидывает. А вообще не верю что зависит от ОС, зависит от типа запроса, если это пост, ошибка 500 если тело создавал 1с, разность срабатывание списываю на разные методы УстановитьТелоИзСтроки() и УстановитьТелоИзДвоичныхДанных().
1
|
8 / 8 / 0
Регистрация: 04.12.2012
Сообщений: 409
|
||||||
28.01.2016, 16:10 [ТС] | 5 | |||||
Volexovich Спасибо за помощь братиш !!! Уважение !!! Ат души !!!
Хочу сказать перед тем как задавать вопросы что с http запросами знаком очень поверхностно - как раз читал про ответы сервера 500 400 итд и про версии протокола http ... К своему стыду ... И в 1с объект HTTPЗапрос встречаю первый раз (на программном уровне конечно ...). Понять всю эту тему быстро не смогу а доделать шабашку хотелось бы ... на сколько я читал документацию по УТМ - он принимает и отправляет запросы в кодировки UTF8 ... так же пытался изменить код на
вы думаете что если поменять кодировку на "CESU-8" код заработает ? Все же думаю что не так так как (УТМ принимает и отправляет запросы в кодировки UTF8) все же я не очень понял - как вы сказали что ошибка на стороне платформы и она не правильно кодирует запрос ... правильно я понял ? почему же тогда на другой машине при прочих равных все сработало ровно ? Заранее огромное спасибо !!!
0
|
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
|
||||||
29.01.2016, 12:56 | 6 | |||||
Кодировка CESU-8 это и есть UTF-8 без BOM.
Конечно если УТМ требует UTF-8, а ему отправить другую кодировку, то будет ошибка. Кстати, на разных компьютерах версии платформы одинаковые? Может наконец 1с отказались от идеи при создании временного файла пихать в него BOM. Добавлено через 9 минут Да
1
|
8 / 8 / 0
Регистрация: 04.12.2012
Сообщений: 409
|
|
29.01.2016, 14:13 [ТС] | 7 |
Volexovich Ат души за помощь !!! Уважение !!!
- Не братиш получилась та же самая борода ... - специально сделал абсолютно одинаковые... Как я понял из прочитанног в иннете что проблема в том что 1с создает временные файлы с воом - то есть (как я понял с неким набором символов перед основным телом) ... И нужно от этих символов избавиться ... однако платформа на ее уровне все равно добавляет эти символы - поэтому Утм их не читает ... - Вы к этому клоните ? И все же понять не могу почему на одной ос - все нормально , а на другой борода ? Версии платформы и конф одинаковые ... У меня все же подозрения на то что ос записывает временный файл в кодировки анси ... Или такого быть не может ? я имею ввиду на уровне ОС ? Заранее огромное спасибо !!!
0
|
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
|
||||||
29.01.2016, 16:03 | 8 | |||||
Сообщение было отмечено andrey76 как решение
Решение
Да
Это невозможно, при условии что вы указываете кодировку, но в 1с кодировка по молчанию utf-8 Что бы это выяснить необходимо перехватить временный файл который создается HTTPЗапрос.УстановитьТелоИзСтроки() Добавлено через 3 минуты Так какой код используешь при создании запроса? Этот:
1
|
8 / 8 / 0
Регистрация: 04.12.2012
Сообщений: 409
|
||||||
29.01.2016, 16:06 [ТС] | 9 | |||||
нет вот этот
0
|
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
|
|
29.01.2016, 16:31 | 10 |
Сообщение было отмечено andrey76 как решение
Решение
Выложи кстати ответ сервера, тот что 500 сопровождает.
Добавлено через 1 минуту В принципе да, но писал тот кто любит лишний код. Добавлено через 18 минут А ОС какая на компе который не хочет отправлять?
1
|
8 / 8 / 0
Регистрация: 04.12.2012
Сообщений: 409
|
||||||
29.01.2016, 16:42 [ТС] | 11 | |||||
Volexovich Спасибо что помогаешь Братиш !!! Ат души !!!
семерочка проф. А на другом (на котором все ок) семерочка макс. уж очен не хочется ОС переставлять ... -
Заранее огромное спасибо !!!
0
|
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
|
|
29.01.2016, 19:08 | 12 |
Ввод/вывод, а это с запросом проблема, перехвати файл запроса в момент создания и сравни с файлом который создается нормально.
Добавлено через 1 минуту Incomplete parts Вот это уже интересней, на кодировку он иначе ругаться должен. Тело запроса когда оно в файле надо смотреть однозначно.
1
|
8 / 8 / 0
Регистрация: 04.12.2012
Сообщений: 409
|
||||||||||||||||
01.02.2016, 15:45 [ТС] | 13 | |||||||||||||||
Добрый день Уважаемые форумчане !!!
Вот запрос который отправляет платформа
В отладчике попробовал воспользваться методом
правлильно я понимаю что 1с не удается записать файл в какойто временный каталог? И как на ваш взгляд - в чем ошибка ? Заранее огромное спасибо !!!
0
|
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
|
|
03.02.2016, 10:05 | 14 |
Это что такое и откуда?
Когда в отладчике пройдете строку УстановитьТелоИзСтроки(), зайдите в папку с временными файлами, найдите тот который создала 1с для этого запроса и любым HEX-редактором посмотрите его состав, убедитесь что первый символ не BOM, а структура файла соответствует требуемой.
1
|
03.02.2016, 10:05 | |
03.02.2016, 10:05 | |
Помогаю со студенческими работами здесь
14
Кодировка при отправке Кодировка при отправке письма Кодировка при отправке письма Кодировка при отправке на почту Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |