libcurl for Clarion
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- morkovin
- Ветеран
- Сообщения: 909
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
libcurl for Clarion
Т.е. не получится с помощью настроек LibCurl заставить исходящий сервер оставлять свои отправленные письма в папке "Отправленные"?
Ал писал(а): ↑29 Сентябрь 2017, 9:15gopstop2007 писал(а): ↑28 Сентябрь 2017, 22:16 - с помощью libcurl возможно оставлять копии отправленных сообщении на smtp сервере
- если исх."свои", можно завести доп.адресок и AddRecipient(Clip(CopyTo...))
- если вх."чужие", можно поиграть imap c 'COPY'
WBR, morkovin
-
- ✯ Ветеран ✯
- Сообщения: 1703
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
libcurl for Clarion
не силен в curl, есть такой сайт http://ean13.info
там предлагают подключится через api http://ean13.info/info/api.php
Вот их описание
Полазил по примерам в https://github.com/mikeduglas/libcurl/t ... r/examples, схожее не нашел,
если есть бросьте ссылку на аналогичное.
Благодарю за внимание
там предлагают подключится через api http://ean13.info/info/api.php
Вот их описание
Код: Выделить всё
Краткое описание API:
запрос к API будет выглядеть вот таким образом: http://www.ean13.info/api.php?code=4603172600007&key=xccvg55kh43jjf
code=3145891578706 – код запрошенного товара
key= xccvgf5kh43 – ключ
Ответ придет в виде (XML):
Где:
Valid– 1/0, правильность штрих-кода (по контрольной цифре)
Loc – ссылка на страницу с товаром
Name – название товара
Desc – описание товара (если есть)
Yourlimit– количество оставшихся запросов к базе.
Так же предоставляется, бренд, производитель, и картинка товара, если такая информация есть в базе.
если есть бросьте ссылку на аналогичное.
Благодарю за внимание
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
libcurl for Clarion
Чтобы выполнить этот запрос, надо
правда, я пробовал, ключ фейковый.
Код: Выделить всё
curl.Init()
curl.SendRequest(...)
С уважением, ДП
- Игорь Столяров
- Ветеран движения
- Сообщения: 7398
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
libcurl for Clarion
Работал я с ним. Это просто очередное вымораживание бабла жителями одной соседней страны …
Есть аналогичный бесплатный сервис - вот здесь уже реальное наполнение базы, но тоже есть проблемка …
А код, примерно, такой …
Код: Выделить всё
Loc:ST1 = "8001090837424" ! ЭТО ЗАПРОС ПО ШТРИХ-КОДУ
Curl &= NEW(TCurlClass)
Curl.Init()
Curl.SetSSLVersion(CURL_SSLVERSION_DEFAULT)
Curl.SetSSLVerifyHost(false)
Curl.SetSSLVerifyPeer(false)
Curl.SetOpt(CURLOPT_CONNECTTIMEOUT,20) ! МАСКИРУЕМСЯ ПОД РАБОЧУЮ ПЧЕЛУ (БРОУЗЕР)
Loc:xRes = Curl.SetUserAgent('Mozilla/1.22 (compatible; MSIE 10.0; Windows 3.1)')
Curl.AddHttpHeader('Content-Type: application/json; charset=utf-8')
Curl.SetHttpHeaders()
Loc:RespBuffer &= NewDynStr() ! ЭТО БУФЕР ДЛЯ ПОЛУЧЕНИЯ ОТВЕТА
! СОБСТВЕННО ВЫПОЛНЯЕМ ЗАПРОС
Loc:xRes = curl.SendRequest('https://barcodes.olegon.ru/api/card/name/' & Loc:ST1,'',Loc:RespBuffer)
If Loc:xRes = CURLE_OK
If Loc:RespBuffer.StrLen() > 0
В Loc:RespBuffer.Str() - ОТВЕТ СЕРВИСА, КОНВЕРТИРУЕМ В ANSI И РАСПАРСИВАЕМ
end
elsIf Loc:xRes = -1
Message(' Неизвестная ошибка запроса: ' & Clip(Left(Loc:xRes)))
else
Message(' Ошибка запроса: ' & Clip(Left(Loc:xRes)) & '| ' & Curl.StrError(Loc:xRes))
end
! Ну и вырубаем всё, что понаоткрывали
DisposeDynStr(Loc:RespBuffer)
Loc:RespBuffer &= Null
Curl.CleanUp()
Dispose(Curl)
За теми кто отстал - не возвращаться. (С) Кодекс
-
- ✯ Ветеран ✯
- Сообщения: 1703
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
libcurl for Clarion
СпасибоДед Пахом писал(а): ↑13 Июнь 2020, 14:22 Чтобы выполнить этот запрос, надоправда, я пробовал, ключ фейковый.Код: Выделить всё
curl.Init() curl.SendRequest(...)
Какой ключ фейковый? В примере api или который покупается на 5000 записей?
Спасибо большое и не знал про аналогичный сервисИгорь Столяров писал(а): ↑13 Июнь 2020, 14:28
Работал я с ним. Это просто очередное вымораживание бабла жителями одной соседней страны …
Есть аналогичный бесплатный сервис - вот здесь уже реальное наполнение базы, но тоже есть проблемка …
А код, примерно, такой …
......
Абсолютно всё аналогично и с http://ean13.info - просто замените запрос.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
-
- ✯ Ветеран ✯
- Сообщения: 1703
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
libcurl for Clarion
Рабочий, Postman возвращает ответ, броузер тоже
это зачем, есть проблемы?Игорь Столяров писал(а): ↑13 Июнь 2020, 14:28Код: Выделить всё
Curl.SetOpt(CURLOPT_CONNECTTIMEOUT,20) ! МАСКИРУЕМСЯ ПОД РАБОЧУЮ ПЧЕЛУ (БРОУЗЕР) Loc:xRes = Curl.SetUserAgent('Mozilla/1.22 (compatible; MSIE 10.0; Windows 3.1)')
Ваш сайт возвращает ответ - работает, мой ean13.info выдает ошибкуИгорь Столяров писал(а): ↑13 Июнь 2020, 14:28 Абсолютно всё аналогично и с http://ean13.info - просто замените запрос.
Последний раз редактировалось gopstop2007 15 Июнь 2020, 12:27, всего редактировалось 1 раз.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Игорь Столяров
- Ветеран движения
- Сообщения: 7398
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
libcurl for Clarion
Да, есть. Некоторые сервисы не любят когда их долбят из CURL. Например те, что живут за счёт показа рекламы в броузере.
Как я упоминал, в сервисе из моего примера тоже есть эта проблема + там владелец сервиса с повышенной тревожностью.
Ему постоянно кажется что все только и хотят, что поиметь запросами его прелесть - базу товаров с штрих-кодами …
Можно я не буду это смотреть ? Получите код ошибки и посмотрите, что не нравится сервису в Вашем запросе …gopstop2007 писал(а): ↑15 Июнь 2020, 8:04 Ваш сайт возвращает ответ - работает, мой ean13.info выдает ошибку
За теми кто отстал - не возвращаться. (С) Кодекс
-
- ✯ Ветеран ✯
- Сообщения: 1703
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
libcurl for Clarion
Ваша возвращает только названия (много?) товара?Игорь Столяров писал(а): ↑15 Июнь 2020, 9:43 Да, есть. Некоторые сервисы не любят когда их долбят из CURL. Например те, что живут за счёт показа рекламы в броузере.
Как я упоминал, в сервисе из моего примера тоже есть эта проблема + там владелец сервиса с повышенной тревожностью.
Ему постоянно кажется что все только и хотят, что поиметь запросами его прелесть - базу товаров с штрих-кодами …
Если так то ean13.info - название + все атрибуты по товару ( описание, бренд, производитель, и картинка товара, если такая информация есть в базе)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Игорь Столяров
- Ветеран движения
- Сообщения: 7398
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
libcurl for Clarion
Не буду спорить - поработайте и всё увидите сами.
Да. Мне нужно только наименование для ускорения добавления товаров с неизвестным штрих-кодом ...
За теми кто отстал - не возвращаться. (С) Кодекс
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
libcurl for Clarion
Я про этот фейковый ключ
gopstop2007 писал(а): ↑13 Июнь 2020, 12:31 code=3145891578706 – код запрошенного товара
key= xccvgf5kh43 – ключ
С уважением, ДП
-
- ✯ Ветеран ✯
- Сообщения: 1703
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
libcurl for Clarion
Да, у них как то описание примера с реальной ссылкой не совпадает http://www.ean13.info/api.php?code=4603 ... g55kh43jjf , где ключ и штрих код другойДед Пахом писал(а): ↑15 Июнь 2020, 11:48 Я про этот фейковый ключgopstop2007 писал(а): ↑13 Июнь 2020, 12:31 code=3145891578706 – код запрошенного товара
key= xccvgf5kh43 – ключ
Как в curl можно после SendRequest сохранить результат в xml файл? Чтобы потом его разобрать.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Дед Пахом
- Старичок
- Сообщения: 3136
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 11 раз
- Поблагодарили: 31 раз
- Контактная информация:
libcurl for Clarion
SendRequest в одном из вариантов сохраняет результат в файл.gopstop2007 писал(а): ↑15 Июнь 2020, 12:32 Как в curl можно после SendRequest сохранить результат в xml файл? Чтобы потом его разобрать.
С уважением, ДП
- Игорь Столяров
- Ветеран движения
- Сообщения: 7398
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 49 раз
libcurl for Clarion
Возможно, я сейчас скажу глупость, но я её скажу !
После обновления до C11.13630 пошли GPF при вызове метода TCurlHTTPClassEx.ReadFile() из под терминальной сессии
при отсутствии доступа в интернет. Локально - вроде бы блымает какое-то окно (возможно с ошибкой), но отловить не получается.
Проблема, вроде бы, уходит если убрать блок переопределения индикатора загрузки, даже на пустую процедуру. Вот это:
Т.е. такое ощущение, что перекосило вызов DERIVED процедуры.
При откате C11 до релиза С11.13505 (или C63) и сборки под ним приложения - проблема не наблюдается.
Понимаю, что так себе информация ... но что есть.
После обновления до C11.13630 пошли GPF при вызове метода TCurlHTTPClassEx.ReadFile() из под терминальной сессии
при отсутствии доступа в интернет. Локально - вроде бы блымает какое-то окно (возможно с ошибкой), но отловить не получается.
Проблема, вроде бы, уходит если убрать блок переопределения индикатора загрузки, даже на пустую процедуру. Вот это:
Код: Выделить всё
TCurlHTTPClassEx Class(TCurlHTTPClass),Type
XFerInfo PROCEDURE(REAL dltotal, REAL dlnow, REAL ultotal, REAL ulnow), LONG, DERIVED
end
MyCurl TCurlHTTPClassEx
При откате C11 до релиза С11.13505 (или C63) и сборки под ним приложения - проблема не наблюдается.
Понимаю, что так себе информация ... но что есть.
За теми кто отстал - не возвращаться. (С) Кодекс