Я хочу опубликовать несколько строк (измерений) временных рядов в InfluxDB с точностью в секундах (точность = s) через VBA и библиотеку WinHttp.
Когда публикуется одно измерение, все работает нормально, и измерениеможно найти в базе данных.
При публикации нескольких строк с \ n в качестве разделителя (как указано в документе: ссылка результат с сервера "не удается проанализировать".
Строка для одной строки выглядит следующим образом и может быть легко вставлена в db: "d_1_deals value = 0 1554336000"
Строка для нескольких строк выглядит следующим образом: "d_1_deals value = 0 1554336000\ nd_1_deals value = 0 1554336900 \ nd_1_deals value = 0 1554337800d_1_deals value = 0 1554338700 "
Я использую объект" WinHttp.WinHttpRequest.5.1 "и метод post. Полный код выглядит следующим образом:
Function post_fp_information_to_influx()
sURL = "http://xx.xxx.xx.250:80/write?"
db_string = "db=xxxxxTEST&precision=s"
resulturl_post = sURL & db_string
params = "d_1_deals value=0 1554336000\nd_1_deals value=0 1554336900\nd_1_deals value=0 1554337800d_1_deals value=0 1554338700"
sResult = GetHTTPResult(resulturl_post, "POST", params)
…
End Function
Function GetHTTPResult(sURL As String, Post_GET As String, params As String) As String
Dim XMLHTTP As Variant, sResult As String
Set XMLHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
XMLHTTP.Open Post_GET, sURL, False
XMLHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
XMLHTTP.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
XMLHTTP.send (params)
sResult = XMLHTTP.ResponseText
Set XMLHTTP = Nothing
GetHTTPResult = sResult
End Function
Ошибка, которую я получаю при публикации нескольких измерений:
"{" error ":" невозможно разобрать "значение d_1_deals = 0 1554336000 \\ nd_1_deals значение = 0 1554336900 \\ n ': bad timestamp "}"
Мне кажется, проблема в том, что особенно "\ n" неправильно закодировано в "\\ n".
Я пробовал разные разделители иподходит, но .send-метод продолжает посылать «\\ n», который не распознается API как новая строка.
Есть идеи, как изменить это поведение? Как я могу изменить разделитель или поведение Encoding для того, чтобы заставить effxDb-API распознавать разделитель строки?