在VB6或ASP中调用webservice

VB6ASP中调用webservice

 

Web Services技术使异种计算环境之间可以共享数据和通信,达到信息的一致性。我们可以利用

HTTP POST/GET协议、SOAP协议来调用Web Services

 

一、            利用SOAP协议在VB6中调用Web Services

 

;        首先利用.net发布一个简单的Web Services

<WebMethod()> _

         Public Function getString(ByVal str As String) As String

             Return "Hello World, " & str & ""

End Function

Web Services只包含一个getString方法,用于返回一个字符串。当我们调用这个Web Services时,发送给.asmx页面的SOAP消息为:

<?xml version="1.0" encoding="utf-8"?>
   
   
<soap:Envelope xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
 xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://
schemas.xmlsoap.org/soap/envelope/">
   
   
  <soap:Body>
   
   
    <getString xmlns="http://tempuri.org/TestWebService/Service1">
   
   
      <str>string</str>
   
   
    </getString>
   
   
  </soap:Body>
   
   
</soap:Envelope>
   
   

而返回的SOAP消息为:

<?xml version="1.0" encoding="utf-8"?>
   
   
<soap:Envelope xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
 xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="
http://schemas.xmlsoap.org/soap/envelope/">
   
   
  <soap:Body>
   
   
    <getStringResponse xmlns="http://tempuri.org/TestWebService/Service1">
   
   
      <getStringResult>string</getStringResult>
   
   
    </getStringResponse>
   
   
  </soap:Body>
   
   
</soap:Envelope>
   
   

 

;        VB6中调用这个简单的Web Services可以利用利用XMLHTTP协议向.asmx页面发

SOAP来实现。

VB6中,建立一个简单的工程,界面如图,我们通过点击Button来调用这个简

单的Web Services

Dim strxml As String

Dim str As String

str = Text2.Text

'定义soap消息

strxml = "<?xml version='1.0' encoding='utf-8'?><soap:Envelope

xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'

xmlns:xsd='http://www.w3.org/2001/XMLSchema'

xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'><soap:Body><getString xmlns='http://tempuri.org/TestWebService/Service1'><str>" & str &

"</str></getString></soap:Body></soap:Envelope>"

 

'定义一个http对象,一边向服务器发送post消息

Dim h As MSXML2.ServerXMLHTTP40

'定义一个XML的文档对象,将手写的或者接受的XML内容转换成XML对象

Dim x As MSXML2.DOMDocument40

 '初始化XML对象

Set x = New MSXML2.DOMDocument40

'将手写的SOAP字符串转换为XML对象

x.loadXML strxml

'初始化http对象

Set h = New MSXML2.ServerXMLHTTP40

'向指定的URL发送Post消息

h.open "POST", "http://localhost/TestWebService/Service1.asmx", False

h.setRequestHeader "Content-Type", "text/xml"

h.send (strxml)

While h.readyState <> 4

Wend

'显示返回的XML信息

Text1.Text = h.responseText

'将返回的XML信息解析并且显示返回值

Set x = New MSXML2.DOMDocument40

x.loadXML Text1.Text

Text1.Text = x.childNodes(1).Text

 

         我们在TEXTBOX中输入“中国”,再点击BUTTON,于是就可以在下边的TEXTBOX中显示“Hello World, 中国” 。显示如图:

 

                                    

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值