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")

応答ヘッダーは 1 つだけではありません。多くの可能性があります。などの標準の応答ヘッダーContent-Typeがあり、カスタム ヘッダーを使用することもできます。

おまけの質問: "MSXML2.ServerXMLHTTP" の "XML" 部分に気付きました - 正しいプロトコルを使用していますか?

はい、間違いなく、これは従来の ASP アプリケーションから HTTP 要求を送信するために使用される正しい COM オブジェクトです。

于 2013-06-22T09:59:27.917 に答える