Страница 2 из 3

Отправить XML-файл через POST с параметрами

Добавлено: 22 Ноябрь 2019, 10:37
Игорь Столяров
finsoftrz писал(а): 22 Ноябрь 2019, 10:27когда ходишь и на фонарики улыбаешься.
Наверно вопрос привычки, но лично мне как-то комфортней работать с методами и классами, а не командной строкой.
Если же говорить конкретно о LibCurl - то это пожалуй одна из наиболее простых и безглючных библиотек под Clarion. :)

Отправить XML-файл через POST с параметрами

Добавлено: 22 Ноябрь 2019, 10:50
finsoftrz
Игорь Столяров писал(а): 22 Ноябрь 2019, 10:37
finsoftrz писал(а): 22 Ноябрь 2019, 10:27когда ходишь и на фонарики улыбаешься.
Наверно вопрос привычки, но лично мне как-то комфортней работать с методами и классами, а не командной строкой.
Если же говорить конкретно о LibCurl - то это пожалуй одна из наиболее простых и безглючных библиотек под Clarion. :)
Какая разница? В libcurl объектная обвязка для библиотеки, с таким же успехом можно сделать обвязку для вызова командной строки. Исполняемый файл в винде практически то же самое, что и dll, отличается заголовком. Разница в создании временных файлов, но винда их тоже создает и удаляет в большом количстве, это штатный режим работы. Если файлик небольшой, то не факт, что он будет даже записан физически на диск в период своей жизни. При работе с экзешником нет шансов наткнуться на грабли и полно примеров в сети, как что сделать. В отличии от библиотеки, работающих с которой из клариона можно по пальцам рук посчитать.

Отправить XML-файл через POST с параметрами

Добавлено: 22 Ноябрь 2019, 11:19
Игорь Столяров
- Запуск EXE приложения - это каждый раз его загрузка и старт. DLL загружается один раз при запуске приложения и далее используется.
- Классы для Clarion - это всего лишь обвязка для интерфейса, сама же LibCurl достаточно популярна и много примеров на том же С/Java.

Хотя действительно, я часто смотрел примеры для командной строки и переписывал их под LibCurl - там всё просто.
С запуском внешнего приложения все хорошо, когда юзается пакетный обмен. Т.е. запрос -> отправка пакета -> ответ.

Более сложные схемы, когда после подключения к сервису программа должна принимать какие-то решения в зависимости
от его ответа - уже не так просты в реализации через командные файлы, хотя конечно же возможны.

Отправить XML-файл через POST с параметрами

Добавлено: 22 Ноябрь 2019, 11:50
finsoftrz
Exe тоже кэшируется в оперативной памяти. Разница в скорости мало заметна на восприятие пользователя. У меня был опыт, когда подключаешь вроде бы распространенную внешнюю библиотеку, а приложение начинает валиться в gpf на ровном метсе. И это трудно воспроизвести у себя. Использование exe - это развязка, исключающая такие ситуации. Просто надо научиться вызывать exe как процесс, чтобы контролировать его работу из своего приложения. Мне понравилось, что это работает 100% без сюрпризов. А с точки зрения нашего приложения минимум кода, все убрано в класс. Если устраивает работа через exe для решения конкретных задач, то я использую его. Если возникнет ситуация, когда лучше работать через линковку с внешней библиотекой, посмотрю в эту сторону. Пока такой потребности не возникало.

Отправить XML-файл через POST с параметрами

Добавлено: 22 Ноябрь 2019, 11:54
RaFaeL
finsoftrz писал(а): 22 Ноябрь 2019, 10:50 В отличии от библиотеки, работающих с которой из клариона можно по пальцам рук посчитать.
Вы бы на гитхабе посмотрели, сколько человек с ней работают )) Россия не весь мир
Но костыли лучше, несомненно )

Отправить XML-файл через POST с параметрами

Добавлено: 22 Ноябрь 2019, 12:33
finsoftrz
Ну и сколько, если не сложно озвучить?
Хороший костыль такой, у которого миллионы пользователей. :-)

Отправить XML-файл через POST с параметрами

Добавлено: 22 Ноябрь 2019, 12:40
Игорь Столяров
finsoftrz писал(а): 22 Ноябрь 2019, 11:50 Пока такой потребности не возникало.
Безусловно, если есть уже отстроенный процесс и наработанные технологии - вряд ли стоит их переделывать.
Тут ведь спрашивали с чего начать, и если ничего нет … то наверно лучше сразу пробовать DLL. Как-то так. :)

По тому с чем я сталкивался (и это объясняет популярность CURL.EXE) - это когда нужно прикрутить обмен
к какой-нибудь существующей программе, но нет желания или возможности её переделывать или той же 1С
(см. "кирпич" в первом сообщении) - проще и понятней уж действительно через запуск EXE.

И Вы правильно сказали, запуск EXE - это разумная изоляция процессов обмена. Любой перекос в DLL ведёт
к краху всего приложения, а для EXE просто перекосит обмен, но программа будет работать. Здесь всё верно. :)

Отправить XML-файл через POST с параметрами

Добавлено: 22 Ноябрь 2019, 12:50
finsoftrz
Как говорил товарищ Сталин, "можно и так".
Автор вопроса мог бы ничего не спрашивать, а набрать в гугле фразу "curl отправить xml файл". И вопрос был бы решен за несколько минут.

Отправить XML-файл через POST с параметрами

Добавлено: 22 Ноябрь 2019, 12:58
Игорь Столяров
finsoftrz писал(а): 22 Ноябрь 2019, 12:50набрать в гугле фразу "curl отправить xml файл"
Для кларионщика этот путь не приемлем в принципе ! Нужен код, а лучше сразу шаблон ! :)

Отправить XML-файл через POST с параметрами

Добавлено: 22 Ноябрь 2019, 13:12
finsoftrz
Кстати, я пропустил, в клариной обертке LibCurl есть колбэк? То есть, если процесс обращения к серверу завис или долгий, может пользователь кнопкой в приложении прервать его выполнение? Что-то про это писали, не заострил внимание.

Отправить XML-файл через POST с параметрами

Добавлено: 22 Ноябрь 2019, 13:27
Игорь Столяров
finsoftrz писал(а): 22 Ноябрь 2019, 13:12в клариной обертке LibCurl есть колбэк?
Есть. Но я его юзаю для того, что бы прикрутить индикатор выполнения процесса в программе. :)

Отправить XML-файл через POST с параметрами

Добавлено: 22 Ноябрь 2019, 13:33
finsoftrz
Популярность CURL.EXE связана с тем, что его могут использовать не только программисты, но и обычные пользователи. И он появился гораздо раньше, чем открыли интерефейс к dll. Причем CURL.EXE поначалу, насколько помню, работал на юниксовых системах, и только потом его портировали на винду. В юниксовых системах концепция микроприложений, там, по моему, вообще понятия dll нет.

Отправить XML-файл через POST с параметрами

Добавлено: 22 Ноябрь 2019, 13:43
finsoftrz
Игорь Столяров писал(а): 22 Ноябрь 2019, 13:27
finsoftrz писал(а): 22 Ноябрь 2019, 13:12в клариной обертке LibCurl есть колбэк?
Есть. Но я его юзаю для того, что бы прикрутить индикатор выполнения процесса в программе. :)
Это хорошо. Я тоже вывожу индикатор выполнения после запуска любого exe. А также стандартно возможность активации кнопки прерывания через заданное количество времени или время для автоматического прерывания.

Отправить XML-файл через POST с параметрами

Добавлено: 22 Ноябрь 2019, 15:21
Игорь Столяров
finsoftrz писал(а): 22 Ноябрь 2019, 13:33не только программисты, но и обычные пользователи
Я же о них и говорил.
Обычный пользователь, который знает тайну открытия (или ниличия) конфигурации - просит называть себя программистом 1С … :)

Отправить XML-файл через POST с параметрами

Добавлено: 22 Ноябрь 2019, 16:46
RaFaeL
finsoftrz писал(а): 22 Ноябрь 2019, 12:33Хороший костыль такой, у которого миллионы пользователей.
А у libcurl не миллионы? Это же одно и то же. Одни и те же функции вызываются либо через exe, либо напрямую. Зачем эта прокладка в виде exe? Она просто не нужна, это костыль по определению
finsoftrz писал(а): 22 Ноябрь 2019, 12:33Причем CURL.EXE поначалу, насколько помню, работал на юниксовых системах, и только потом его портировали на винду. В юниксовых системах концепция микроприложений, там, по моему, вообще понятия dll нет.
Вот это новости )) А exe на юниксовых системах давно появился? ))

Все с точностью до наоборот. Есть libcurl для всего, и для винды есть curl.exe как чисто виндовый интерфейс всего этого