打印本文 打印本文 关闭窗口 关闭窗口
vb6.0实现soap的客户端
作者:武汉SEO闵涛  文章来源:敏韬网  点击数783  更新时间:2009/4/23 15:04:01  文章录入:mintao  责任编辑:mintao

最近的项目中要用到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

打印本文 打印本文 关闭窗口 关闭窗口