【问题标题】:How do I Access Response Header in Http Request如何访问 Http 请求中的响应标头
【发布时间】:2013-06-22 09:50:28
【问题描述】:

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

【问题讨论】:

  • 您是不是缺少要检索的标头?又名httpRequest.getResponseheader("server") 如图所示here

标签: asp-classic http-headers httprequest


【解决方案1】:

您需要指定要检索的response header 的名称:

response.write httpRequest.getResponseHeader("SomeHeaderName")

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

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

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

【讨论】:

  • 谢谢达林,这正是我正在寻找的答案 - 非常感谢
猜你喜欢
  • 2016-02-13
  • 1970-01-01
  • 2015-11-13
  • 1970-01-01
  • 2011-03-06
  • 1970-01-01
  • 1970-01-01
  • 2014-12-18
  • 1970-01-01
相关资源
最近更新 更多