Имя: Пароль:
1C
1С v8
HTTPЗапрос с заголовками, кодировка ответа
0 amberweiss
 
04.03.20
16:04
День добрый!
Код ниже в результате Ответ.ПолучитьТелоКакСтроку возвращает кракозябры вида:
�       �X[o�H�+�_��Ds��
M�‚[���ȁ��
ؑ
J�������l�Z[��03{�9�;7v [�ba�Ƚ�?������>$E��[[�n��=��� V0&xȘQ�̷I���"͗n�=w�-�#V_�%���hFW�4����q��۹�Ž?�l    N�ɓ-�Q0�+�,    �G�7�&ύ��q����g��^<��4s�Q��ӫއ�Z[�'�<Jܛŷ���mp='1��#�=Sۣ�v:��#�YYM�f>��f�z�z6���Y�W��yL�_Aۿ�D�׈�-6�`����ws�d�?����_h�� ��p��o[�k��a�&x]�& ���mZ�։WOw���[�O�HKX��;�Jz���c�(���TJ�    �*)�4�����&L�Y�4)���(ҲEFʸ�=G,"��O � N��g��8��D{'�p<��[;y�W^,Q��#�^�Og��4B%!�����R�'� =��#/W�,]��bY�,<߫��q��T��w
�YE�!M�h8��� v�̙��M��4JD����+ h�%P���
    �iH���B��  ���$s.��~�<W�Pe*b��Z�H7 Pe�n    �W�D^�3��#�P�{���?wi���H�n�2��9U��� a:Q]�p�8���|�o�{\E\�D��*���E]�i/���~ ���n�L�6?� q���9fK�8��Nj��K4�,Y9�|


Если тыкаться туда же с теми же заголовками через Postman - возвращается нормальный json.

Код:
[CODE]Заголовки = Новый Соответствие;
    Заголовки.Вставить("Referer", "https://stats.nba.com/game/0021900641/";);
    Заголовки.Вставить("x-nba-stats-token", "true");
    Заголовки.Вставить("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36");
    Заголовки.Вставить("Accept-Language", "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7,de;q=0.6");
    Заголовки.Вставить("Accept", "application/json, text/plain, */*");
    Заголовки.Вставить("Accept-Encoding", "gzip");
    //26.02.20


    
    ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
        
    АдресСайта = Константы.СсылкаНаСайт.Получить();//stats.nba.com
    Соединение = Новый HTTPСоединение(АдресСайта, 443,,,,30, ЗащищенноеСоединение);
    Запрос = Новый HTTPЗапрос(СтрокаЗапроса, Заголовки);
    Ответ = Соединение.Получить(Запрос);
    Рез = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);[/CODE]


Напрмер СтрокаЗапроса:
/stats/boxscoretraditionalv2?EndPeriod=10&EndRange=28800&GameID=0021900641&RangeType=0&Season=2019-20&SeasonType=Regular+Season&StartPeriod=1&StartRange=0


ЧЯДНТ? Какие нужны заголовки?
Код ответа возвращает 200
1 Garykom
 
гуру
04.03.20
16:11
(0) >ЧЯДНТ? Какие нужны заголовки?

Дело не в заголовках (хотя их лучше почистить от лишнего) а в
  Рез = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8)

Тут бом добавь или убери принудительно а не авто ну и попробуй другие кодировки.
Короче сохрани средствами 1С в файл и глянь что там
2 amberweiss
 
04.03.20
16:54
(1) Кодировки перебрала уже все возможные, по-моему.
При сохранении в файл то же, что и в отладчике. Изменение кодировки через текстовые редакторы (с BOM/без BOM ) ничего не дает
3 dezss
 
04.03.20
16:58
(2) А что в заголовках в ответе?
4 Insens
 
04.03.20
16:59
> Заголовки.Вставить("Accept-Encoding", "gzip");

Не в этом ли дело?
5 dezss
 
04.03.20
17:00
(4) Вполне может быть.
Ты покажи заголовки ответа.
6 Garykom
 
гуру
04.03.20
17:03
(2) А 7zip сохраненное в файл как архив открывает? Тогда (4)
7 Cyberhawk
 
04.03.20
17:08
Релиз платформы и режим совместимости?
8 amberweiss
 
04.03.20
17:13
(4) Спасибо! Взлетело
Заголовки.Вставить("Accept-Encoding", "application/json");
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.