Страница 1 из 1

LibCurl: Серия запросов

Добавлено: 02 Октябрь 2023, 11:59
Игорь Столяров
Привет всем !

Не получается, выполнить серию однотипных запросов (в запросе меняется только номер пакета).
В цикле почему-то всегда выполняется первый запрос. По одному запросы прекрасно выполняются ... :(

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

  Curl &= New TCurlClass
  Сurl.Init()
  
  Loop ...  
    Curl.FreeHttpHeaders()
    Curl.AddHttpHeader('Host: api-seller.ozon.ru')
    ...
    Curl.SetHttpHeaders()

    Curl.SendRequest(...)
    
    !curl.CleanUp()  Не решает проблему
    !curl.Init()  
  end   
  
  Dispose(Curl)
Я как-то неправильно формирую последовательность запросов ? Спасибо ! :)

LibCurl: Серия запросов

Добавлено: 02 Октябрь 2023, 14:44
Дед Пахом
Воспроизводится, выложу фикс попозже сегодня.

LibCurl: Серия запросов

Добавлено: 02 Октябрь 2023, 17:18
Дед Пахом
Выложил v1.61, должно работать.
Я бы в конце цикла вызывал curl.Reset() (вместо CleanUp+Init).

LibCurl: Серия запросов

Добавлено: 02 Октябрь 2023, 19:47
Игорь Столяров
Спасибо ! :)

LibCurl: Серия запросов

Добавлено: 02 Октябрь 2023, 21:12
Дед Пахом
А если какие-то параметры устанавливаются ДО цикла, то Reset вызывать не надо, он их сбросит в дефолтные.

LibCurl: Серия запросов

Добавлено: 03 Октябрь 2023, 23:34
Игорь Столяров
ДД !
Всё проверил - проблем нет, ещё раз спасибо ! :)
Теперь работает даже вот такая оптимистическая комбинация для пакетной загрузки:

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

  Curl &= New TCurlClass
  Сurl.Init()

  Curl.FreeHttpHeaders()
  Curl.AddHttpHeader('Host: api-seller.ozon.ru')
  ...
  Curl.SetHttpHeaders()
  
  Loop ...  
    Curl.SendRequest(...)
  end
  
  Dispose(Curl)
P/S: Но про Сurl.Reset() - я услышал и записал для себя ... 8)