首先,我已经查看了SO,并在此处找到了类似的问题:
Calling REST web services from a classic asp page
但是,这并不能解决我的问题。我无法找到一种方法来检索我的电话提供的正确信息
function determineLocationId(identifier)
Dim http: Set http = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
Dim privateKey
privateKey = "myKey"
IdentifyUrl = "https://sandbox.uberall.com/api/locations/?identifier=" & identifier & "&private_key=" & privateKey
With http
Call .Open("GET", identifyUrl, False)
Call .Send()
End With
If Left(http.Status, 1) = 2 Then
response.write("updated")
Else
'Output error
Call Response.Write("Server returned: " & http.Status & " " & http.StatusText)
End If
response.write(identifyUrl)
response.end()
determineLocationId = identifier
end function
当我将identifyUrl
打印到屏幕并复制&将其粘贴到我的浏览器中,我得到正确的输出。一个json
格式的对象,包含我需要的信息。
但是,如果我打印http.responseBody
,它只会产生一些像这样的中文字符:
佄呃偙⁅呈䱍倠䉕䥌⁃ჲ⼯㍗⽃䐯䑔䠠䵔⁌⸴吠慲狝莹潩虑⽬䔯≎∠瑨灴⼺眯睷眮⸳牯⽧剔栯浴㑬氯浔敳搮摴㸢ⴭⴭⴭ䐠瑡虑敭>敤慦汵獡⁰㉖〮‰〮⸸〲㈱䠠楗汬汬墙楥敢杲牥ჰ
我做错了什么?链接肯定是正确的。我还尝试添加:
Call .SetRequestHeader("Content-Type", "application/json")
没有成功
答案 0 :(得分:0)
嗯,事实证明,使用responseBody
并不正确。根据WinHttpRequest的MSDN-Page,responseBody
正在检索此内容:
以无符号字节数组的形式检索响应实体主体。
在我的情况下,我不得不切换到reponseText
,这是正确的事情:
以文本形式检索响应实体主体。