안녕하세요, 저는 API를 호출하고 winhttp 요청과 GET 메서드를 사용하고 있습니다. send 메서드에서 json 스타일 매개 변수를 전달하지만 받아 들일 수 없습니다. 결국 오류 메시지가 나타납니다.VBA RESTful API GET 메서드 문제
{ "code": "INS03", "설명": "이벤트 ID 필요", "requestId": "_ 181603230829162847306080", "data": {}, "validationErrors": 나는 실제로 이벤트 ID 매개 변수를 전달하고 있기 때문에 다음과 같이 이상한 것 같다 널 (null)}
:
inventory_URL = "https://api.stubhub.com/search/inventory/v1"
Dim oRequest As WinHttp.WinHttpRequest
Dim sResult As String
Set oRequest = New WinHttp.WinHttpRequest
With oRequest
.Open "GET", inventory_URL, True
.setRequestHeader "Authorization", "Bearer " & access_token
.setRequestHeader "Accept", "application/json"
.setRequestHeader "Accept-Encoding", "application/json"
.send ("{""eventid"":""9445148""}")
.waitForResponse
sResult = .responseText
Debug.Print sResult
sResult = oRequest.Status
Debug.Print sResult
End With
내 코드에 어떤 문제가 있습니까?
가 구성되어야한다GET
요청 쿼리 문자열의 경우, 사전에
바딤
나는 아무것도 바꾸지 않을 것이라고 생각하지만'.send ("{" "eventid" ": 9445148}")'주변의 괄호는 제거해야합니다. [이것은 혼란 스럽습니다. 왜 항상 괄호를 사용하지 않는거야?] (http://stackoverflow.com/documentation/vba/1179/procedure-calls/3818/this-is-confusing-why-not-just-always-use-parentheses#t = 201608231909481978335) Docs.SO에 대한 정보를 제공합니다. 이유가 궁극적으로 뒷걸음질 치기 쉬운 이유입니다. –
'.send "시도해 보셨나요? 9445148"'? API 설명서에서 URL이 예상하는 내용은 무엇입니까? –
나는 괄호에 동의한다. 순수한 .send "944518"이 효과가 있을지 모르지만, 정확히하지는 못했지만 바로 맨 위에있는 inventory_URL 문자열에 매개 변수를 직접 삽입하여 문제를 발견했다. 이 API는 안심할 수있는 호출을 지원한다고 생각합니다. 가능하다면 .send "...."는 다른 각도에서와 같은 기술입니다. 정말 고마워하는 팁 덕택에 괄호 버릇에 좀 더주의를 기울 이겠습니다! –