Прошу прощения, если заголовок моего вопроса неверен. Я привык к идее сеансов PHP с API.Создание сеанса API с xmlHttp в VBA
Я пытаюсь сделать то же подвиг в VBA со следующим кодом:
'Login
strLogin = "https://URL.COM/authenticateUser?login=username&apiKey=password"
Set xmlHttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlHttp.Open "GET", strLogin
xmlHttp.setRequestHeader "Content-Type", "text/xml"
xmlHttp.send
'Save the response to a string
strReturn = xmlHttp.responseText
'Open URL and get JSON data
strUrl = "https://URL.COM/Search/search?searchTerm=" & Keyword & "&mode=beginwith"
Set xmlHttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlHttp.Open "GET", strUrl
xmlHttp.setRequestHeader "Content-Type", "text/xml"
xmlHttp.send
'Save the response to a string
strReturn = xmlHttp.responseText
Sheets(1).Cells(20, 2).Value = strReturn
С помощью этого API, мне нужно войти в первый перед выполнением каких-либо вызовов, которые возвращают данные.
Моя проблема заключается в том, что я не могу определить, как «оставаться в системе», чтобы мой второй вызов работал.
после того, как войти в систему, strReturn
заполняется следующей строкой:
{"Status":{"Code":"2","Message":"Authentication Succeeded","Success":"true"}}
Однако, когда я иду использовать strUrl
, я получаю следующее сообщение:
{"Status":{"Code":"1","Message":"Invalid User Name Or Password","Success":"false"}}
я использовал этот код в предыдущих проектах, где мне нужно было предоставить ключ API вместе с URL для каждого запроса на сервер - так что это явно сработало. Я не уверен, как достичь концепции «создания сеанса», хотя с помощью xmlHttp.
просто наблюдение, но вы создаете новый объект «xmlHttp» перед выполнением второго GET. возможно, вы можете повторно использовать существующий объект «xmlHttp» и посмотреть, помогает ли вам поддерживать сеанс? – Fink