2

我正在调用外部 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”部分——我使用的是正确的协议吗?它一直适用于直接帖子,直到现在。

4

1 回答 1

3

您需要指定要检索的响应标头的名称:

response.write httpRequest.getResponseHeader("SomeHeaderName")

不只有一个响应标头。可能有很多。您有标准的响应标头,例如Content-Type,您也可以有自定义标头。

还有一个额外的问题:我刚刚注意到“MSXML2.ServerXMLHTTP”的“XML”部分——我使用的是正确的协议吗?

是的,绝对是,这是从经典 ASP 应用程序用于发送 HTTP 请求的正确 COM 对象。

于 2013-06-22T09:59:27.917 回答