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

Тут мало того, что у всех участников этого действия тараканы, так они ещё и разные.

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

Передача кириллицы в 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)) ко всей строке параметров закодирует и другие спецсимволы.

Тут мало того, что у всех участников этого действия тараканы, так они ещё и разные.
Разумеется, кодируется только значение (слово СЧФДОП).
Передача кириллицы в http запросе через curl
Добавлено: 28 Июнь 2025, 19:30
finsoftrz
Игорь Столяров писал(а): 28 Июнь 2025, 19:11
finsoftrz писал(а): 28 Июнь 2025, 18:23
Мне кажется, я сильно модней
Даже не сомневаюсь в этом. И ещё покупаете современные сервера для использование технологий.
Но потом стартуете на нём десятки раз внешний EXE, c новой авторизацией на REST сервисе для каждой
операции и записью результата в текстовые файлы, с их последующей загрузкой для парса ...
Невольно напрашивается мой любимый вопрос. А нафига ?
Авторизация в любом случае выполняется при каждом запросе к сервису. Стартовать внешний 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 параметрами будет через год супер-квестом.
Не хочу дискутировать, так как плохо понимаю, про что Вы пишите.
Два часа это очень много. Я все не мог понять, что Вы так упорно не хотите провести простой тест, думал, минут 10-15 от силы займет. В таком случае, вдвойне спасибо за приложенные усилия, не хотел так напрягать.
Передача кириллицы в http запросе через curl
Добавлено: 29 Июнь 2025, 9:11
finsoftrz
Подумал, что, возможно, влияет какая-то установка в header. Поскольку странно, что задокументированная опция --data-urlencode не срабатывает.