Страницы: 1
RSS
Не обновляются данные, полученные макросом через api
 
Есть макрос, который получает данные через api. Для примера отсюда https://www.bitmex.com/api/v1/orderBook/L2?symbol=XBTUSD&depth=3
Допустим мне нужно получить самый первый параметр id.

Вот код макроса:
Код
Sub test()

    Dim httpObject As Object
    Set httpObject = CreateObject("MSXML2.XMLHTTP")
    
    URL = "https://www.bitmex.com/api/v1/orderBook/L2?symbol=XBTUSD&depth=3"
    httpObject.Open "GET", URL, False
    httpObject.Send
    res = httpObject.ResponseText
    
    Cells(1, 1) = Mid(res, 26, InStr(res, "side") - 28)

End Sub
Макрос должен выводить параметр id в ячейку А1. И в принципе он так и делает. Но значение id меняется и довольно быстро, это видно если открыть ссылку просто в браузере и обновлять страницу. Но макрос при повторном запуске параметр id не обновляет. Я пробовал в конце добавлять Set httpObject=nothing, это не помогает.
Как заставить макрос работать?  :(  
 
Что-то такое (чтобы не брал из кеша):
Код
httpObject.setRequestHeader "If-Modified-Since", "Mon, 18 Jul 2016 02:36:04 GMT"
Изменено: sokol92 - 12.10.2021 16:19:03
Владимир
 
Спасибо, работает. Но только я не понял как  :)

Что за дата указана в конце?
 
Любая старая дата. Взял из примера к описанию заголовка.
Цель - не использовать кеш запросов. Иначе при повторной отсылке одного и того же запроса может возвращаться прежний результат.
Изменено: sokol92 - 12.10.2021 16:59:23
Владимир
 
Спасибо!

На всякий случай напишу, если у кого-то похожая проблема возникнет. Целиком код должен выглядеть так:
Код
Sub test()

    Dim httpObject As Object
    Set httpObject = CreateObject("MSXML2.XMLHTTP")
    
    URL = "https://www.bitmex.com/api/v1/orderBook/L2?symbol=XBTUSD&depth=3"
    httpObject.Open "GET", URL, False
    httpObject.setRequestHeader "If-Modified-Since", "Mon, 18 Jul 2016 02:36:04 GMT"
    httpObject.Send
    
    res = httpObject.ResponseText
    
    Cells(4, 1) = Mid(res, 26, InStr(res, "side") - 28)

End Sub
Страницы: 1
Наверх