加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何使用SOAP从经典ASP调用.Net Web服务方法

发布时间:2020-12-16 03:47:38 所属栏目:asp.Net 来源:网络整理
导读:我试图使用SOAP从Classic ASP调用.Net Web服务.我已经构建了以下代码作为测试,并继续返回一个400 Bad Request错误的空响应者.我做错了什么,或者这个问题可能在.Net方面? 'set up xmlhttp to checkout serverDim oRequestSet oRequest = Server.CreateObject
我试图使用SOAP从Classic ASP调用.Net Web服务.我已经构建了以下代码作为测试,并继续返回一个400 Bad Request错误的空响应者.我做错了什么,或者这个问题可能在.Net方面?

'set up xmlhttp to checkout server
Dim oRequest
Set oRequest = Server.CreateObject("MSXML2.ServerXMLHTTP")

'setting this option will allow ServerXMLHTTP to ignore the certificate errors it encounters.
oRequest.setOption(2) = SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS


' resolve,connect,send,receive - in milliseconds
oRequest.setTimeouts 10000,10000,10000

'set the URL
msURL = "[redacted]"

msSOAP = "<?xml version=""1.0"" encoding=""utf-8"" ?>"
msSOAP = msSOAP & "<soap12:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap12=""http://www.w3.org/2003/05/soap-envelope"">"
msSOAP = msSOAP & "<SOAP:Body>"
msSOAP = msSOAP & "<[Some Service] xmlns=""http://localhost"">"
msSOAP = msSOAP & "<MethodName>"
msSOAP = msSOAP & "<methodParam1>[some value]</methodParam1>"
msSOAP = msSOAP & "<methodParam2>[some value]</methodParam2>"
msSOAP = msSOAP & "<methodParam3>[some value]</methodParam3>"
msSOAP = msSOAP & "</MethodName>"
msSOAP = msSOAP & "</[Some Service]>"
msSOAP = msSOAP & "</SOAP:Body>"
msSOAP = msSOAP & "</soap12:Envelope>"

oRequest.Open "POST",msURL,False
oRequest.setRequestHeader "Content-Type","text/xml"
oRequest.setRequestHeader "SOAPMethodName","[MethodName]"
oRequest.setRequestHeader "SOAPAction","[Some Url]"
oRequest.send msSOAP

Response.Write oRequest.ResponseBody

解决方法

以下解决方案是我的问题的答案.和Filburt,一旦我真的做了一个很好的SOAP调用,我发现你的问题是非常合法的.类型和格式非常重要!

'set up xmlhttp to checkout server
Dim oRequest
Set oRequest = Server.CreateObject("MSXML2.ServerXMLHTTP")

'setting this option will allow ServerXMLHTTP to ignore the certificate errors it encounters.
oRequest.setOption(2) = SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS

' resolve,10000

'set the URL
msURL = "[Service Url]"

msSOAP = "<?xml version=""1.0"" encoding=""utf-8"" ?>"
msSOAP = msSOAP & "<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/"">"
msSOAP = msSOAP & "<s:Body>"
msSOAP = msSOAP & "<[MethodName] xmlns=""[Some Namespace]"">"
msSOAP = msSOAP & "<methodParam1>[Some value]</methodParam1>"
 msSOAP = msSOAP & "<methodParam2>[Some value]</methodParam2>"
 msSOAP = msSOAP & "<methodParam3>[Some value]</methodParam3>"
   msSOAP = msSOAP & "</MethodName>"
msSOAP = msSOAP & "</s:Body>"
msSOAP = msSOAP & "</s:Envelope>"

oRequest.Open "POST","text/xml"
oRequest.setRequestHeader "SOAPAction","[Some Url]"
oRequest.send msSOAP

我从网址上取下了“?wsdl”并更改了信封,现在可以正常工作了.我还删除了SoapMethodName标头的设置.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读