首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSXML ServerXMLHTTP-调用web服务

MSXML ServerXMLHTTP-调用web服务
EN

Stack Overflow用户
提问于 2016-05-12 11:50:45
回答 1查看 3.5K关注 0票数 1

问题:我从If Err.Number <> 0 Then检查中得到以下错误输出;

代码语言:javascript
复制
Err.Number :-1072954818  
Err.Source :msxml6.dll  
Err.Source :This method cannot be called until the open method has been called.

代码:

代码语言:javascript
复制
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

我在这里错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-05-12 12:07:30

该问题与错误中所描述的完全相同,您正在尝试设置请求头,而不首先调用Open()。您还缺少了在接收响应之前发送请求的Send()方法。

代码语言:javascript
复制
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属性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37186043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档