libcurl for Clarion

Программы на Clarion, шаблоны, библиотеки и пр.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4771
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

libcurl for Clarion

Сообщение Игорь Столяров »

gopstop2007 писал(а):
13 Июнь 2020, 12:31
сайт http://ean13.info
Работал я с ним. Это просто очередное вымораживание бабла жителями одной соседней страны … ;)
Есть аналогичный бесплатный сервис - вот здесь уже реальное наполнение базы, но тоже есть проблемка … :(
А код, примерно, такой …

Код: Выделить всё

     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)
     
Абсолютно всё аналогично и с http://ean13.info - просто замените запрос. :)
«V» значит Вендетта !

gopstop2007
✯ Ветеран ✯
Сообщения: 1442
Зарегистрирован: 25 Март 2009, 21:55

libcurl for Clarion

Сообщение gopstop2007 »

Дед Пахом писал(а):
13 Июнь 2020, 14:22
Чтобы выполнить этот запрос, надо

Код: Выделить всё

  curl.Init()
  curl.SendRequest(...)
правда, я пробовал, ключ фейковый.
Спасибо
Какой ключ фейковый? В примере api или который покупается на 5000 записей?
Игорь Столяров писал(а):
13 Июнь 2020, 14:28

Работал я с ним. Это просто очередное вымораживание бабла жителями одной соседней страны … ;)
Есть аналогичный бесплатный сервис - вот здесь уже реальное наполнение базы, но тоже есть проблемка … :(
А код, примерно, такой …
......
Абсолютно всё аналогично и с http://ean13.info - просто замените запрос. :)
Спасибо большое и не знал про аналогичный сервис :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2475
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

libcurl for Clarion

Сообщение Дед Пахом »

gopstop2007 писал(а):
14 Июнь 2020, 18:29
Какой ключ фейковый?
Из Вашего примера.
С уважением, ДП

gopstop2007
✯ Ветеран ✯
Сообщения: 1442
Зарегистрирован: 25 Март 2009, 21:55

libcurl for Clarion

Сообщение gopstop2007 »

Дед Пахом писал(а):
14 Июнь 2020, 18:33
gopstop2007 писал(а):
14 Июнь 2020, 18:29
Какой ключ фейковый?
Из Вашего примера.
Рабочий, Postman возвращает ответ, броузер тоже
Игорь Столяров писал(а):
13 Июнь 2020, 14:28

Код: Выделить всё

 
     Curl.SetOpt(CURLOPT_CONNECTTIMEOUT,20)  ! МАСКИРУЕМСЯ ПОД РАБОЧУЮ ПЧЕЛУ (БРОУЗЕР)
     Loc:xRes = Curl.SetUserAgent('Mozilla/1.22 (compatible; MSIE 10.0; Windows 3.1)')
это зачем, есть проблемы?
Игорь Столяров писал(а):
13 Июнь 2020, 14:28
Абсолютно всё аналогично и с http://ean13.info - просто замените запрос. :)
Ваш сайт возвращает ответ - работает, мой ean13.info выдает ошибку
Последний раз редактировалось gopstop2007 15 Июнь 2020, 12:27, всего редактировалось 1 раз.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4771
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

libcurl for Clarion

Сообщение Игорь Столяров »

gopstop2007 писал(а):
15 Июнь 2020, 8:04
это зачем, есть проблемы?
Да, есть. Некоторые сервисы не любят когда их долбят из CURL. Например те, что живут за счёт показа рекламы в броузере.
Как я упоминал, в сервисе из моего примера тоже есть эта проблема + там владелец сервиса с повышенной тревожностью.
Ему постоянно кажется что все только и хотят, что поиметь запросами его прелесть - базу товаров с штрих-кодами … ;)
gopstop2007 писал(а):
15 Июнь 2020, 8:04
Ваш сайт возвращает ответ - работает, мой ean13.info выдает ошибку
Можно я не буду это смотреть ? ;) Получите код ошибки и посмотрите, что не нравится сервису в Вашем запросе … :)
«V» значит Вендетта !

gopstop2007
✯ Ветеран ✯
Сообщения: 1442
Зарегистрирован: 25 Март 2009, 21:55

libcurl for Clarion

Сообщение gopstop2007 »

Игорь Столяров писал(а):
15 Июнь 2020, 9:43
Да, есть. Некоторые сервисы не любят когда их долбят из CURL. Например те, что живут за счёт показа рекламы в броузере.
Как я упоминал, в сервисе из моего примера тоже есть эта проблема + там владелец сервиса с повышенной тревожностью.
Ему постоянно кажется что все только и хотят, что поиметь запросами его прелесть - базу товаров с штрих-кодами … ;)
Ваша возвращает только названия (много?) товара?
Если так то ean13.info - название + все атрибуты по товару ( описание, бренд, производитель, и картинка товара, если такая информация есть в базе)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4771
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

libcurl for Clarion

Сообщение Игорь Столяров »

gopstop2007 писал(а):
15 Июнь 2020, 10:18
название + все атрибуты по товару
Не буду спорить - поработайте и всё увидите сами. ;)
Да. Мне нужно только наименование для ускорения добавления товаров с неизвестным штрих-кодом ...
«V» значит Вендетта !

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2475
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

libcurl for Clarion

Сообщение Дед Пахом »

Я про этот фейковый ключ
gopstop2007 писал(а):
13 Июнь 2020, 12:31
code=3145891578706 – код запрошенного товара
key= xccvgf5kh43 – ключ
С уважением, ДП

gopstop2007
✯ Ветеран ✯
Сообщения: 1442
Зарегистрирован: 25 Март 2009, 21:55

libcurl for Clarion

Сообщение gopstop2007 »

Дед Пахом писал(а):
15 Июнь 2020, 11:48
Я про этот фейковый ключ
gopstop2007 писал(а):
13 Июнь 2020, 12:31
code=3145891578706 – код запрошенного товара
key= xccvgf5kh43 – ключ
Да, у них как то описание примера с реальной ссылкой не совпадает http://www.ean13.info/api.php?code=4603 ... g55kh43jjf , где ключ и штрих код другой

Как в curl можно после SendRequest сохранить результат в xml файл? Чтобы потом его разобрать.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2475
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

libcurl for Clarion

Сообщение Дед Пахом »

gopstop2007 писал(а):
15 Июнь 2020, 12:32
Как в curl можно после SendRequest сохранить результат в xml файл? Чтобы потом его разобрать.
SendRequest в одном из вариантов сохраняет результат в файл.
С уважением, ДП

Ответить