webservice 应用的问题(vb6调用,soapheader)
Option Explicit
Private soapclient As SoapClient30
Private Const WSDL_NAMESPACE = "http://tempuri.org/"
'The WSDL_RUL web service URL.
Private Const WSDL_URL = "http://192.168.0.201/webtest/WebService.asmx"
Private Const username = "admin"
Private Const password = "123"
Private Sub Form_Load()
Set soapclient = New SoapClient30
soapclient.MSSoapInit WSDL_URL + "?wsdl"
End Sub
Private Function CreateConnector(ByVal Method As String) As HttpConnector30
Dim Serializer As SoapSerializer30
Dim Connector As ISoapConnector
Set Connector = New HttpConnector30
Connector.Property("EndPointURL") = WSDL_URL
Connector.Connect
Connector.Property("SoapAction") = WSDL_NAMESPACE + Method
Connector.BeginMessage
Set Serializer = New SoapSerializer30
Serializer.Init Connector.InputStream
Serializer.StartEnvelope
Serializer.StartHeader
Serializer.StartElement "Credentials", WSDL_NAMESPACE
Serializer.StartElement "Name", WSDL_NAMESPACE
Serializer.WriteString username
Serializer.EndElement
Serializer.StartElement "Password", WSDL_NAMESPACE
Serializer.WriteString password
Serializer.EndElement
Serializer.EndElement
Serializer.EndHeader
Serializer.StartBody
Serializer.StartElement Method, WSDL_NAMESPACE
Serializer.EndElement
Serializer.EndBody
Serializer.EndEnvelope
Connector.EndMessage
Set CreateConnector = Connector
End Function
Private Sub GetAbout_Click()
Dim Reader As SoapReader30
Set Reader = New SoapReader30
'Create and send a SOAP GetAbout request and receive the result.
Reader.Load CreateConnector("HelloWorld").OutputStream
If Not Reader.Fault Is Nothing Then
'Display the error message received from server.
Text1 = " " + Reader.FaultDetail.xml
Else
'Display the complex type Version
Text1 = Reader.Body.firstChild.firstChild.xml
End If
End Sub