|
УТ 11.4: ЧтениеJSON заменяется буква "о" на "п" | ☑ | ||
---|---|---|---|---|
0
Deal with it
29.09.21
✎
14:02
|
Собственно УТ 11.4.13.271, платформа 8.3.18.1289
В результате следующего кода где-то слетает кодировка: СтрокаПараметраПолучения = Новый HTTPЗапрос("/api-1c/market-sku-info?sku=" + ИДМаркета); //ИДМаркета СерверИсточник = "ultrasport.ru"; Попытка HTTP = Новый HTTPСоединение(СерверИсточник, , , , , , Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено)); Исключение Сообщить("Не удалось создать новое HTTPСоединение!"); Возврат ""; КонецПопытки; Попытка Результат = HTTP.Получить(СтрокаПараметраПолучения); Если Результат.КодСостояния = 200 Тогда Ответ = Результат.ПолучитьТелоКакСтроку(); ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(Ответ); Данные = ПрочитатьJSON(ЧтениеJSON); ЧтениеJSON.Закрыть(); Артикул = Данные.artikul; Модель = Данные.model; Иначе Сообщить("Код ответа " + Результат.КодСостояния); КонецЕсли; Исключение Возврат ""; КонецПопытки; конкретно в этом возвращаемом параметре Модель = Данные.model буква "о" меняется на "п". |
|||
1
Deal with it
29.09.21
✎
14:03
|
(0) для примера вот СКУ
14980-0YXRgNC\0Lw= если вы в браузере выполните этот запрос, то вернет {"model":"хром","artikul":"A1005035"}, а в 1С "хрпм" |
|||
2
Deal with it
29.09.21
✎
14:03
|
В чем может быть прикол?
|
|||
3
polosov
29.09.21
✎
14:07
|
(2) Уже после
Ответ = Результат.ПолучитьТелоКакСтроку(); есть замена? |
|||
4
Garykom
гуру
29.09.21
✎
14:08
|
проверить чем то мимо 1С
указать кодировки |
|||
5
Garykom
гуру
29.09.21
✎
14:09
|
и на другой платформе 1С
но имхо вряд ли бага в 1С |
|||
6
Deal with it
29.09.21
✎
14:15
|
(4) кодировки ставил, не помогло
|
|||
7
Kassern
29.09.21
✎
14:16
|
(3) там реально почему то символ меняется, уже как получаешь строку с ответа)
|
|||
8
Fragster
гуру
29.09.21
✎
14:17
|
(1) смотри в браузере в девтулзах что, а не то, как это выглядит в окне. может это они как раз от скрэпинга/парсинга защищаются как ЦИК - особым шрифтом с переставленными символами
|
|||
9
Deal with it
29.09.21
✎
14:20
|
(3) уже в самом "ответ" {"model":"хрпм","artikul":"A1005035"}
|
|||
10
Fragster
гуру
29.09.21
✎
14:21
|
||||
11
Deal with it
29.09.21
✎
14:21
|
(8) можно поподробней куда смотреть? как выявить этот шрифт?
|
|||
12
Fragster
гуру
29.09.21
✎
14:22
|
(11) никуда не смотри, код рабочий
|
|||
13
Deal with it
29.09.21
✎
14:22
|
так в чем же прикол?
|
|||
14
Fragster
гуру
29.09.21
✎
14:22
|
(13) ну попробуй на другом релизе платформы или на другом компе
|
|||
15
Fragster
гуру
29.09.21
✎
14:22
|
под другим пользюком
|
|||
16
Deal with it
29.09.21
✎
14:23
|
(14) ок, глянем на следующем релизе платформы годном.
|
|||
17
Kassern
29.09.21
✎
14:28
|
(14) странно, у меня так как у ТС выводится. https://yadi.sk/i/MFIKkue2K2IDjg
|
|||
18
Kassern
29.09.21
✎
14:29
|
(17) платформа 8.3.19.1264
|
|||
19
Мультук
гуру
29.09.21
✎
14:34
|
(0)
1С:Предприятие 8.3 (8.3.18.1334) Код автора = "хрпм" аа = КоннекторHTTP.GetJson("https://ultrasport.ru/api-1c/market-sku-info?sku=14980-0YXRgNC\0Lw="); Выдает "хром" Так что разбирайся с кодировками, имхо |
|||
20
Kassern
29.09.21
✎
14:41
|
блин все гораздо проще... вместо вашего артикула напишите sku=14980-0YXRgNC%5C0Lw%3D и будет вам счастье
|
|||
21
Kassern
29.09.21
✎
14:42
|
браузер сам экранирует символы, а вот в 1ске надо самому позаботиться это сделать, что собственно и делает модуль КоннекторHTTP.
|
|||
22
Kassern
29.09.21
✎
14:48
|
АриткулУРЛ=КодироватьСтроку("14980-0YXRgNC\0Lw=",СпособКодированияСтроки.КодировкаURL);
Запрос=Новый HTTPЗапрос("/api-1c/market-sku-info?sku="+АриткулУРЛ); |
|||
23
Deal with it
29.09.21
✎
15:27
|
(22) Спасибо! Заработало. Возьму за правило кодировать строки перед отправкой в качестве параметра.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |