Наткнулся на проблему с этим курлом (вернее не с курлом, а с WScript.Shell) на ОС Windows Server 2008.
Суть в следующем:
на Windows 7 - никаких проблем нет с запуском курла через созданный COM-объект WScript.Shell.
а вот на Windows Server 2008 - проблем с запуском курла через созданный COM-объект WScript.Shell тоже нет, кроме одной единственной "фишки":
при методе Run - все запросы по Методичке отрабатываются, кроме одного единственного, а именно кроме:
Цитата: curl -X POST "https://markirovka.crpt.ru/api/v3/true-api/auth/permissive-access" -d "{""data"":""колбаса""}"
Т.е., методом Shell.Run - запросы вида:
Цитата: curl -X GET "https://markirovka.sandbox.crptech.ru/api/v4/true-api/cdn/info" -H "Content-Type:application/json" -H "X-API-KEY:xxx"
curl -X POST "https://markirovka.crpt.ru/api/v4/true-api/codes/check" -H "X-API-KEY:xxx" -d "{""codes"":""0104680029460908215jcmHzLmkdPML\u001d938p9E""]}"
отрабатываются без проблем, и лишь единственный запрос (api/v3/true-api/auth/permissive-access) - приводит к "вылету" Шелл, т.е. как будто ошибка в синтаксисе выполняемой Run-ом команды, хотя ошибки нет точно, ибо на Windows 7 - работает этот запрос (и все остальные) без проблем.
Причём, если создать батник, и именно в методе Run указать не строку, а батник, - то выполняется без проблем, т.е. проблема не в самой исполняемой строке и соответственно не в curl, а именно что-то не то с этим Шелл-ом что-ли.. Но почему другие команды выполняются, а именно эта единственная - нет? (а приводит к "вылету" Шелла)...
Для 1С 77 пока применил временное решение такого плана:
Цитата: //*******************************************
Функция ВыполнитьКоманду(парКоманднаяСтрока = "")
КодВозврата = 0;
Попытка
Шел = СоздатьОбъект("WScript.Shell");
КодВозврата = Шел.Run(парКоманднаяСтрока,7,-1);
//КодВозврата = Шел.Run(парКоманднаяСтрока,0,"True");
Исключение
Попытка // попытаемся отправить через cmd:
//КомандаСистемы(парКоманднаяСтрока); // в этом случае окно cmd несвёрнутое
// чтобы сама команда выполнялась в свёрнутом (а не в открытом) окне, сделаем батник:
тФайл = СоздатьОбъект("Текст");
тФайл.ДобавитьСтроку("@ECHO OFF");
тФайл.ДобавитьСтроку("START """" /MIN /WAIT "+парКоманднаяСтрока);
тФайл.Записать(КаталогОбработки + "crptcurl.bat");
КодВозврата = Шел.Run(КаталогОбработки + "crptcurl.bat",7,-1); // теперь окно свёрнутое
Исключение
Предупреждение("Исключительная ошибка выполнения команды"+"" ""+ОписаниеОшибки(),600);
Возврат 0;
КонецПопытки;
КонецПопытки;
Если КодВозврата <> 0 Тогда
Предупреждение("Ошибка выполнения команды " + парКоманднаяСтрока + "" "" + "код возврата = " + КодВозврата,600);
Возврат 0;
КонецЕсли;
Возврат 1;
КонецФункции
т.е. - если не выполняется через строку, то строка выполняется через скрипт...
Но почему такая ерунда именно с одной единственной командой, причём на другой ОС - всё нормально...
Где что подправить может на сервере (чтобы естественно сервер не "положить")?
Если кто из знатоков винды знает - подскажите варианты.