问题:我从If Err.Number <> 0 Then检查中得到以下错误输出;
Err.Number :-1072954818
Err.Source :msxml6.dll
Err.Source :This method cannot be called until the open method has been called.代码:
dim objHttpRequest
dim gw_menu_request
dim HTTPMethod
HTTPMethod="POST"
Set objHttpRequest = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
gw_menu_request = "http://test.com?q=headerexpose/expose_headers/expose_json"
objHttpRequest.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHttpRequest.setRequestHeader "Content-Length", 0
objHttpRequest.open HTTPMethod, gw_menu_request, false
Response.write(objHttpRequest.ResponseXML)
If Err.Number <> 0 Then
Response.Write "Err.Number :" & Err.Number & "<br/>"
Response.Write "Err.Source :" & Err.Source & "<br/>"
Response.Write "Err.Source :" & Err.Description & "<br/>"
Response.Write "Err.File :" & Err.File & "<br/>"
End If我在这里错过了什么?
发布于 2016-05-12 12:07:30
该问题与错误中所描述的完全相同,您正在尝试设置请求头,而不首先调用Open()。您还缺少了在接收响应之前发送请求的Send()方法。
Dim objHttpRequest
Dim gw_menu_request
Dim HTTPMethod
HTTPMethod="POST"
Set objHttpRequest = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
gw_menu_request = "http://test.com?q=headerexpose/expose_headers/expose_json"
'Open request specifying method and URL to call
objHttpRequest.open HTTPMethod, gw_menu_request, False
'Set any HTTP headers needed before sending.
objHttpRequest.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHttpRequest.setRequestHeader "Content-Length", 0
'Send the request
objHttpRequest.Send
Response.write(objHttpRequest.ResponseXML.Xml)
If Err.Number <> 0 Then
Response.Write "Err.Number :" & Err.Number & "<br/>"
Response.Write "Err.Source :" & Err.Source & "<br/>"
Response.Write "Err.Source :" & Err.Description & "<br/>"
Response.Write "Err.File :" & Err.File & "<br/>"
End If您还需要ResponseXML.Xml,否则您将收到一个
Microsoft VBScript运行时错误:类型不匹配
因为您试图输出对象,而不是包含XML表示的Xml属性。
https://stackoverflow.com/questions/37186043
复制相似问题