Страница 5 из 5

Передача кириллицы в http запросе через curl

Добавлено: 28 Июнь 2025, 19:02
Игорь Столяров
Конкретно в этом случае, проблема в том, что кодировать для Diadoc нужно только одно значение параметра с русскими буквами.
А применение Urlencode (ну или printf('%u',ParamStr)) ко всей строке параметров закодирует и другие спецсимволы. :shock:
Тут мало того, что у всех участников этого действия тараканы, так они ещё и разные. :D

Передача кириллицы в http запросе через curl

Добавлено: 28 Июнь 2025, 19:11
Игорь Столяров
finsoftrz писал(а): 28 Июнь 2025, 18:23 Мне кажется, я сильно модней
Даже не сомневаюсь в этом. И ещё покупаете современные сервера для использование технологий.
Но потом стартуете на нём десятки раз внешний EXE, c новой авторизацией на REST сервисе для каждой
операции и записью результата в текстовые файлы, с их последующей загрузкой для парса ... 🤦‍♀️

Невольно напрашивается мой любимый вопрос. А нафига ? :D

Передача кириллицы в http запросе через curl

Добавлено: 28 Июнь 2025, 19:17
finsoftrz
Дед Пахом писал(а): 28 Июнь 2025, 18:45 Надо --data-urlencode value1=ЙЦУКЕНГ без кодировки.
Проверял, не работает. Ни в ansi, ни в utf8. Почему, хз. На выходе все равно получается стандартный urlencode, который почему-то некорректно передается в сервис. К слову, в postmen есть возможность конвертации запросов в синтаксис curl. И он тоже дает аналогичный код с параметром в urlencode вида function=%D0%A1%D0%A7%D0%A4%D0%94%D0%9E%D0%9F

Передача кириллицы в http запросе через curl

Добавлено: 28 Июнь 2025, 19:19
finsoftrz
Игорь Столяров писал(а): 28 Июнь 2025, 19:02 Конкретно в этом случае, проблема в том, что кодировать для Diadoc нужно только одно значение параметра с русскими буквами.
А применение Urlencode (ну или printf('%u',ParamStr)) ко всей строке параметров закодирует и другие спецсимволы. :shock:
Тут мало того, что у всех участников этого действия тараканы, так они ещё и разные. :D
Разумеется, кодируется только значение (слово СЧФДОП).

Передача кириллицы в http запросе через curl

Добавлено: 28 Июнь 2025, 19:30
finsoftrz
Игорь Столяров писал(а): 28 Июнь 2025, 19:11
finsoftrz писал(а): 28 Июнь 2025, 18:23 Мне кажется, я сильно модней
Даже не сомневаюсь в этом. И ещё покупаете современные сервера для использование технологий.
Но потом стартуете на нём десятки раз внешний EXE, c новой авторизацией на REST сервисе для каждой
операции и записью результата в текстовые файлы, с их последующей загрузкой для парса ... 🤦‍♀️

Невольно напрашивается мой любимый вопрос. А нафига ? :D
Авторизация в любом случае выполняется при каждом запросе к сервису. Стартовать внешний exe в виде процесса не такая затратная операция, дернуть 500кб из кеша. Создание временных файлов тоже, они маленькие. Сколько временных файлов создает винда, не задумывались? Я понимаю, что без файлов более экономично. Нафига - это проще и быстрее при отладке и сопровождении. Не надо думать, что пользователи только и делают, что обращаются к внешним серверам. У них это занимает, может, долю процента рабочего времени. Если это была бы не вспомогательная задача, то я бы подумал об оптимизации и использовании библиотеки.

Передача кириллицы в http запросе через curl

Добавлено: 28 Июнь 2025, 20:26
PavelNK
А если Fiddler'ом посмотреть, что реально улетает на портал

Передача кириллицы в http запросе через curl

Добавлено: 28 Июнь 2025, 20:34
Игорь Столяров
finsoftrz писал(а): 28 Июнь 2025, 19:30 Авторизация в любом случае выполняется при каждом запросе к сервису.
Не хотелось бы Вас огорчать в день такого великого достижения ... но нет.
Авторизация выполняется разово и далее уже идёт обмена GET / PUT и т.д.

Тут даже не вопрос о том, что это ресурсозатратно, купите ещё один сервер.
Когда Вы с одного IP адреса инициируете долбёжку REST авторизациями - он
начинает отвечать через time-out избегая перегрузки DOS атакой.
finsoftrz писал(а): 28 Июнь 2025, 19:30 Нафига - это проще и быстрее при отладке и сопровождении.
В чём проще ? Я сегодня за два часа получил список параметров и ответ сервиса,
с которым неработал несколько лет. Половина времени ушла на поиск и чтение справки.
А сопровождение текстовых строк запуска c параметрами будет через год супер-квестом. 🤦‍♀️

Передача кириллицы в http запросе через curl

Добавлено: 28 Июнь 2025, 21:14
finsoftrz
Игорь Столяров писал(а): 28 Июнь 2025, 20:34
finsoftrz писал(а): 28 Июнь 2025, 19:30 Авторизация в любом случае выполняется при каждом запросе к сервису.
Не хотелось бы Вас огорчать в день такого великого достижения ... но нет.
Авторизация выполняется разово и далее уже идёт обмена GET / PUT и т.д.

Тут даже не вопрос о том, что это ресурсозатратно, купите ещё один сервер.
Когда Вы с одного IP адреса инициируете долбёжку REST авторизациями - он
начинает отвечать через time-out избегая перегрузки DOS атакой.
finsoftrz писал(а): 28 Июнь 2025, 19:30 Нафига - это проще и быстрее при отладке и сопровождении.
В чём проще ? Я сегодня за два часа получил список параметров и ответ сервиса,
с которым неработал несколько лет. Половина времени ушла на поиск и чтение справки.
А сопровождение текстовых строк запуска c параметрами будет через год супер-квестом. 🤦‍♀️
Не хочу дискутировать, так как плохо понимаю, про что Вы пишите. :shock:
Два часа это очень много. Я все не мог понять, что Вы так упорно не хотите провести простой тест, думал, минут 10-15 от силы займет. В таком случае, вдвойне спасибо за приложенные усилия, не хотел так напрягать.

Передача кириллицы в http запросе через curl

Добавлено: 29 Июнь 2025, 9:11
finsoftrz
Подумал, что, возможно, влияет какая-то установка в header. Поскольку странно, что задокументированная опция --data-urlencode не срабатывает.