2016-09-02 1 views
-1

Я новичок, и ваша помощь была потрясающей! У меня проблема с запросом GET для проверки подлинности SSO в сценарии Excel Visual Basic. API говорит, чтобы отправить запрос GET на:Ошибка запроса VBA GET, плохой формат?

https://services.example.com/API/Security.svc/SSOSiteLogin/siteId/enterpriseGuid/authToken/timezoneOffset

Где значения для siteID, enterpriseGUID, authToken и timezoneOffset все были получены на основании предыдущих запросов GET, которые работали хорошо. Когда я посылаю запрос окончательного GET для маркеров безопасности, он возвращает:

{ «Деталь»: «SSOSiteLogin failed.Input строка не была в правильном формате.»}

Вот мой соответствующий код:

Dim hreq As New WinHttpRequest 
Dim response As String 
Dim URL As String 
    'get security token 
URL = "https://services.example.com/API/Security.svc/SSOSiteLogin/siteID/enterpriseGUID/" & authToken & "/null" 
hreq.Open "GET", URL, False 
hreq.Send 

response = hreq.ResponseText 
Range("A13") = response 

В код вводятся переменные siteID и enterpriseGUID, а authToken хранится с более раннего запроса POST. Последнее значение, timezoneOffset, задается как «null» из более раннего запроса, поэтому я набираю «/ null» в конце, но я обеспокоен тем, что вызывает неправильный ответ формата. Все остальное просто возвращает общую ошибку с сервера.

Любые идеи? Заранее спасибо!

+0

Вы определенно не хотите, чтобы буквальная строка «null». Сначала я попробую оставить его в качестве косой черты ... Больше ничего – dbmitch

+0

Редактировать таймаут. Оставьте конечную косую черту. Если это не удаляет завершающую косую черту. Также вы должны перепроверить свой звонок, чтобы получить смещение часового пояса. Это звучит подозрительно, что он возвращает null – dbmitch

+0

К конечной косой черту вы имеете в виду просто оканчивать ее как «//»? Я пробовал это, "/", "/" и Null, и никто из них не работает. Они просто возвращают ошибку из схемы, ссылаясь на неправильный метод. Только добавление текста после «/» возвращает ошибку, опубликованную выше. Я думал, что ответ с ошибкой ранее был нечетным, но он исходит из того же POST, который дает authToken, а в руководстве API пример говорит: «timezoneOffset:« null »тоже. Это просто странно. –

ответ

0

Я поместил значения в ячейки и отправил запрос GET как "Range("E5") & "/" & Range("E6") & "/", и т. Д., Чтобы я мог попробовать несколько проблем отладки без необходимости обращаться к редактору VBA и по какой-то причине сработал! Я также использовал строку «null». Если кто-нибудь знает, почему это сработало и вводит все это как одну строку, мне не интересно было бы узнать.

 Смежные вопросы

  • Нет связанных вопросов^_^