最近的项目中要用到web service,通过internet 发现vb就可以实现soap的客户端,要用到MSSOAPLib.SoapClient,MSSOAPLib.SoapSerializer...
这些东东.
实现代码如下(老外的)
VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 2475
ClientLeft = 60
ClientTop = 345
ClientWidth = 4575
LinkTopic = "Form1"
ScaleHeight = 2475
ScaleWidth = 4575
StartUpPosition = 3 ''''Windows Default
Begin VB.CommandButton Command1
Caption = "Command1"
Height = 615
Left = 960
TabIndex = 0
Top = 720
Width = 2295
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Public sClient As New MSSOAPLib.SoapClient
Private Const c_WSDL_URL As String = _
"http://cst48/espresentation/webservices/systemstatus.asmx?WSDL"
''''You need soap Type library 3.0 and microsoft xml v2.6to run this example
Private Sub Command1_Click()
''''sClient.mssoapinit c_WSL_URL
Debug.Print Time
TranslateBabel
Debug.Print Time
MsgBox "finish "
End Sub
Public Sub TranslateBabel()
'''' Purpose: Translates text from one language to another.
'''' WSDL: http://services.xmltoday.com/vx_engine/wsdl_publish.vep/translate.wsdl
'''' More info: http://www.xmethods.net/detail.html?id=94 http://www.56city.net
Dim objClient As MSSOAPLib.SoapClient
'''' To package SOAP request.
Dim objSerial As MSSOAPLib.SoapSerializer
'''' To read SOAP response.
Dim objRead As MSSOAPLib.SoapReader
'''' To connect to Web service using SOAP.
Dim objConn As MSSOAPLib.SoapConnector
'''' To parse the SOAP response.
Dim objResults As MSXML2.IXMLDOMNodeList
Dim objNode As MSXML2.IXMLDOMNode
'''' Set up the SOAP connector.
Set objConn = New MSSOAPLib.HttpConnector
'''' Define the endpoint URL. This is the actual running code,
'''' not the WSDL file path! You can find it in the WSDL''''s
'''' <soap:address> tag''''s location attribute.
objConn.Property("EndPointURL") = "http://cst48/espresentation/webservices/systemstatus.asmx"
'''' Define the SOAP action. You can find it in the WSDL''''s
'''' <soap:operation> tag''''s soapAction attribute for the matching
'''' <operation> tag.
''''GetNaturalInfo is the name of the service
objConn.Property("SoapAction") = "http://tempuri.org/GetNaturalInfo"
''''objConn.Property("SoapAction") = "GetNaturalInfo"
'''' Begin the SOAP message.
objConn.BeginMessage
Set objSerial = New MSSOAPLib.SoapSerializer
'''' Initialize the serializer to the connector''''s input stream.
objSerial.Init objConn.InputStream
'''' Build the SOAP message.
With objSerial
.startEnvelope '''' <SOAP-ENV:Envelope>
.startBody '''' <SOAP-ENV:Body>
'''' Use the Web method''''s name and schema target namespace URI.
.startElement "GetNaturalInfo"
.endElement
.endBody '''' </SOAP-ENV:Body>
.endEnvelope '''' </SOAP-ENV:Envelope>
End With
'''' Send the SOAP message.
objConn.EndMessage
Set objRead = New MSSOAPLib.SoapReader
'''' Initialize the SOAP reader to the connector''''s output stream.
objRead.Load objConn.OutputStream
Set objResults = objRead.RPCResult.childNodes
'''' Iterate through the returned nodes.
For Each objNode In objResults
''''Debug.Print objNode.nodeValue
MsgBox objNode.nodeTypedValue
Next objNode
End Sub