CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  网络编程

客户端用VB6开发,服务器用IIS5,安装了MSXML,想利用SOAP,有谁做过?

楼主gdyaojie(gzyj)2005-03-01 14:33:19 在 VB / 网络编程 提问

就是客户端通过SOAP/XML访问服务器上的数据,但不直接联接数据库。  
  客户端安装了SOAP   Toolkit   3,但程序调试不过。提示:  
  缺少对象:   'objReq.SelectSingleNode(...)'  
   
  客户端提示:  
  对象变量或   With   块变量未设置  
   
  有谁做过吗? 问题点数:50、回复次数:7Top

1 楼gdyaojie(gzyj)回复于 2005-03-01 14:47:09 得分 0

测试例子  
  客户端程序:  
  Sub   main()  
                  Dim   objHTTP   As   New   MSXML2.XMLHTTP  
                  Dim   strEnvelope   As   String  
                  Dim   strReturn   As   String  
                  Dim   objReturn   As   New   MSXML2.DOMDocument  
                  Dim   dblTax   As   Double  
                  Dim   strQuery   As   String  
                   
                   
                   
                  '创建SOAP封装  
                  strEnvelope   =   _  
                      "<SOAP:Envelope   xmlns:soap=""urn:schemas-xmlsoap-org:soap.v1"">"   &   _  
                      "<SOAP:Header></SOAP:Header>"   &   _  
                      "<SOAP:Body>"   &   _  
                      "<m:GetSalesTax>"   &   _  
                      "<SalesTotal>100</SalesTotal>"   &   _  
                      "</m:GetSalesTax>"   &   _  
                      "</SOAP:Body>"   &   _  
                      "</SOAP:Envelope>"  
                   
                  '设定发往本地服务器  
                  objHTTP.open   "post",   "http://172.16.30.196/a/soap.asp",   False  
                   
                  '设定标准SOAP/   XML格式  
  '                 objHTTP.setRequestHeader   "Content-Type",   "text/xml"  
                   
                  'SOAP呼叫  
                  objHTTP.send   strEnvelope  
                   
                  '取出返回信封  
                  strReturn   =   objHTTP.responseText  
                   
                  '加载到DOM  
                  objReturn.loadXML   strReturn  
                   
                  '查询返回值  
                  strQuery   =   _  
                      "//SOAP:Envelope/SOAP:Body/m:GetSalesTaxResponse/SalesTax"  
                  dblTax   =   objReturn.selectSingleNode(strQuery).Text  
                   
                  Debug.Print   dblTax  
   
  End   Sub  
  Top

2 楼gdyaojie(gzyj)回复于 2005-03-01 14:47:54 得分 0

服务器端soap.asp:  
  <%  
  '             Set   objReq   =   Server.CreateObject("Microsoft.XMLDOM")  
              Set   objReq   =   Server.CreateObject("MSXML2.DOMDocument")  
              '加载请求到XML   DOM  
      objReq.async   =   False  
              objReq.Load   Request  
   
              '按照输入参数查询  
              strQuery   =   "SOAP:Envelope/SOAP:Body/m:GetSalesTax/SalesTotal"  
              varSalesTotal   =   objReq.SelectSingleNode(strQuery).Text  
   
              '计算  
              varSalesTax   =   varSalesTotal   *   0.04  
   
              '准备返回信封  
              strTmp   =   _  
              "<SOAP:Envelope   xmlns:soap=""urn:schemas-xmlsoap-org:soap.v1"">"   &   _  
              "<SOAP:Header></SOAP:Header>"   &   _  
              "<SOAP:Body>"   &   _  
              "<m:GetSalesTaxResponse>"   &   _  
              "<SalesTax>"   &   varSalesTax   &   "</SalesTax>"   &   _  
              "</m:GetSalesTaxResponse>"   &   _  
              "</SOAP:Body>"   &   _  
              "</SOAP:Envelope>"  
   
              '回写结果文件  
              Response.Write   strTmp  
  %>    
  Top

3 楼bdhh(Silent)回复于 2005-03-01 15:57:18 得分 50

既然装了SOAP   Toolkit,那就不要自己处理xml了!!  
   
  服务器端:做好dll然后用SOAP   Toolkit带的WSDL   Generator生成WSDL和asp文件,配置好站点  
   
  客户端:  
          Dim   soap   As   SoapClient30              
          Set   soap   =   New   SoapClient30  
          Call   soap.MSSoapInit("http://server/a/abc.wsdl")   '指向wsdl文件  
          MsgBox   soap.Add(12,   44)         '调用dll中的Add方法  
          Set   soap   =   Nothing  
           
  Top

4 楼gdyaojie(gzyj)回复于 2005-03-01 16:34:22 得分 0

如果不用SOAP   Toolkit,程序应该怎么写?Top

5 楼bdhh(Silent)回复于 2005-03-01 17:40:44 得分 0

1、你使用了命名空间SOAP,但声明却是xmlns:soap,大小写不一致  
  2、你使用了命名空间m,但是没有声明Top

6 楼Begin2008(重头再来)回复于 2005-03-01 19:03:18 得分 0

学习Top

7 楼gdyaojie(gzyj)回复于 2005-03-03 10:26:41 得分 0

我找到问题的解决方法了。谢谢大家的参与。Top

相关问题

  • VB开发IIS程序题
  • 用vb msxml操作xml文档的中文的问题
  • 用vb msxml操作xml文档的中文的问题
  • VB中的 IIS Application是 ??(100分)
  • 可不可以在vb中设置iis??
  • 高手帮忙,vb的组件+iis?
  • 关于vb操作iis的问题
  • VB!
  • vb
  • vb!

关键词

  • soap
  • 服务器
  • 客户
  • toolkit
  • 文件
  • wsdl
  • asp
  • xml
  • objhttp
  • 客户端

得分解答快速导航

  • 帖主:gdyaojie
  • bdhh

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo