А применение Urlencode (ну или printf('%u',ParamStr)) ко всей строке параметров закодирует и другие спецсимволы.

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

Модератор: Дед Пахом
Даже не сомневаюсь в этом. И ещё покупаете современные сервера для использование технологий.
Проверял, не работает. Ни в ansi, ни в utf8. Почему, хз. На выходе все равно получается стандартный urlencode, который почему-то некорректно передается в сервис. К слову, в postmen есть возможность конвертации запросов в синтаксис curl. И он тоже дает аналогичный код с параметром в urlencode вида function=%D0%A1%D0%A7%D0%A4%D0%94%D0%9E%D0%9F
Разумеется, кодируется только значение (слово СЧФДОП).Игорь Столяров писал(а): 28 Июнь 2025, 19:02 Конкретно в этом случае, проблема в том, что кодировать для Diadoc нужно только одно значение параметра с русскими буквами.
А применение Urlencode (ну или printf('%u',ParamStr)) ко всей строке параметров закодирует и другие спецсимволы.
Тут мало того, что у всех участников этого действия тараканы, так они ещё и разные.![]()
Авторизация в любом случае выполняется при каждом запросе к сервису. Стартовать внешний exe в виде процесса не такая затратная операция, дернуть 500кб из кеша. Создание временных файлов тоже, они маленькие. Сколько временных файлов создает винда, не задумывались? Я понимаю, что без файлов более экономично. Нафига - это проще и быстрее при отладке и сопровождении. Не надо думать, что пользователи только и делают, что обращаются к внешним серверам. У них это занимает, может, долю процента рабочего времени. Если это была бы не вспомогательная задача, то я бы подумал об оптимизации и использовании библиотеки.Игорь Столяров писал(а): 28 Июнь 2025, 19:11Даже не сомневаюсь в этом. И ещё покупаете современные сервера для использование технологий.
Но потом стартуете на нём десятки раз внешний EXE, c новой авторизацией на REST сервисе для каждой
операции и записью результата в текстовые файлы, с их последующей загрузкой для парса ...
Невольно напрашивается мой любимый вопрос. А нафига ?![]()
Не хотелось бы Вас огорчать в день такого великого достижения ... но нет.finsoftrz писал(а): 28 Июнь 2025, 19:30 Авторизация в любом случае выполняется при каждом запросе к сервису.
В чём проще ? Я сегодня за два часа получил список параметров и ответ сервиса,
Не хочу дискутировать, так как плохо понимаю, про что Вы пишите.Игорь Столяров писал(а): 28 Июнь 2025, 20:34Не хотелось бы Вас огорчать в день такого великого достижения ... но нет.finsoftrz писал(а): 28 Июнь 2025, 19:30 Авторизация в любом случае выполняется при каждом запросе к сервису.
Авторизация выполняется разово и далее уже идёт обмена GET / PUT и т.д.
Тут даже не вопрос о том, что это ресурсозатратно, купите ещё один сервер.
Когда Вы с одного IP адреса инициируете долбёжку REST авторизациями - он
начинает отвечать через time-out избегая перегрузки DOS атакой.
В чём проще ? Я сегодня за два часа получил список параметров и ответ сервиса,
с которым неработал несколько лет. Половина времени ушла на поиск и чтение справки.
А сопровождение текстовых строк запуска c параметрами будет через год супер-квестом.![]()
Ответ:curl -X POST -G "https://echo.free.beeceptor.com" --data-urlencode "param1=value 1" --data-urlencode "param2=ЙЦУКЕНГ"
{
"method": "POST",
"protocol": "https",
"host": "echo.free.beeceptor.com",
"path": "/?param1=value+1¶m2=%d0%99%d0%a6%d0%a3%d0%9a%d0%95%d0%9d%d0%93",
"ip": "86.122.441.8:00877",
"headers": {
"Host": "echo.free.beeceptor.com",
"User-Agent": "curl/8.13.0",
"Content-Length": "0",
"Accept": "*/*",
"Accept-Encoding": "gzip"
},
"parsedQueryParams": {
"param1": "value 1",
"param2": "ЙЦУКЕНГ"
},
"rawBody": "",
"warnings": [
"Missing Content-Type header for the POST request."
]
}