我正在调用外部API。令人讨厌的是,它返回的数据位于标题中(文本响应为空)。
如何访问响应的标头?
这就是我正在尝试的:
Dim httpRequest, postResponse
Set httpRequest = Server.CreateObject("MSXML2.ServerXMLHTTP")
httpRequest.Open "POST", "http://www.api.com", False, "un", "pw"
httpRequest.SetRequestHeader "Content-Type", "application/json"
httpRequest.setRequestHeader "Content-Length", len(jsondata)
httpRequest.Send data
if httpRequest.status = 200 then
response.write httpRequest.getResponseHeader
response.write httpRequest.ResponseText
end if
Set httpRequest = nothing
但它给了我:
msxml3.dll error '80072f76'
The requested header was not found
还有一个额外的问题:我刚刚注意到“MSXML2.ServerXMLHTTP”的“XML”部分 - 我使用的是正确的协议吗?它总是适用于直接帖子,直到现在。
答案 0 :(得分:2)
您需要指定要检索的response header的名称:
response.write httpRequest.getResponseHeader("SomeHeaderName")
没有一个响应头。可能会有很多。您有标准的响应标头,例如Content-Type
,您也可以使用自定义标头。
还有一个额外的问题:我刚刚注意到了“XML”的一部分 “MSXML2.ServerXMLHTTP” - 我使用的是正确的协议吗?
是的,绝对的,这是从经典ASP应用程序用于发送HTTP请求的正确COM对象。