zoukankan      html  css  js  c++  java
  • 在脚本语言中调用WebService的方法

     1. 在JavaScript中调用WebService


    <script language="javascript">
    function PostRequestData(URL,data){
      var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      xmlhttp.Open("POST",URL, false);
      xmlhttp.SetRequestHeader ("Content-Type","text/xml; charset=utf-8");
      xmlhttp.SetRequestHeader ("SOAPAction","http://tempuri.org/myService/test/isNumner");

      try {
        xmlhttp.Send(data);
        var result = xmlhttp.status;
      }
      catch(ex) {
        return("0" + ex.description + "&#124;" + ex.number);
      }

      if(result==200) {
        return("1" + xmlhttp.responseText);
      }
      xmlhttp = null;
    }

    function loadit(value){
      var url = 'http://localhost/myService/test.asmx';
      var data ;
      var r;

      data = '<?xml version="1.0" encoding="utf-8"?>';
      data = data + '<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/">';
      data = data + '<soap:Body>';
      data = data + '<isNumner xmlns="http://tempuri.org/myService/test">';
      data = data + '<str>'+value+'</str>';
      data = data + '</isNumner>';
      data = data + '</soap:Body>';
      data = data + '</soap:Envelope>';
      
      r=PostRequestData(url,data);
      document.write(r);
    }

    loadit('5');
    </script>

    当然,还可以使用微软的htc组件来实现,可以到这里下载:
    http://msdn.microsoft.com/workshop/author/webservice/webservice.htc

    <script language="javascript">

    function timer(){
      service.useService("http://localhost/myService/test.asmx?WSDL","test");
      service.test.callService(callback,"isNumner",'gdh');
    }

    function callback(res){
      if (!res.error)
        time.innerText=res.value;
    }
    </script>


    <div id="service" style="behavior:url(webservice.htc)"></div>
    <span id="time"></span>

    2. 在Asp中调用WebService

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

    <%
    Dim strxml
    Dim str

    '定义soap消息
    strxml = "<?xml version='1.0' encoding='tf-8'?>"
    strxml = strxml & "<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/'>"
    strxml = strxml & "<soap:Body> "
    strxml = strxml & "<isNumner xmlns='http://tempuri.org/myService/test'>"
    strxml = strxml & "<str>4</str>"
    strxml = strxml & "</isNumner>"
    strxml = strxml & "</soap:Body>"
    strxml = strxml & "</soap:Envelope>"

    '定义一个XML的文档对象,将手写的或者接受的XML内容转换成XML对象
    set x = createobject("Microsoft.DOMDocument")
    '初始化XML对象
    '将手写的SOAP字符串转换为XML对象
    x.loadXML strxml

    '初始化http对象
    Set h = createobject( "Microsoft.XMLHTTP")
    '向指定的URL发送Post消息
    h.open "POST", "http://localhost/myService/test.asmx", False
    h.setRequestHeader "Content-Type", "text/xml"
    h.setRequestHeader "SOAPAction", "http://tempuri.org/myService/test/isNumner"
    h.send (strxml)

    While h.readyState <> 4
    Wend

    '显示返回的XML信息
    str = h.responseText

    '将返回的XML信息解析并且显示返回值
    Set x = createobject("MSXML2.DOMDocument")
    x.loadXML str

    str = x.childNodes(1).Text
    response.write(str)

    %>

    3.在.net中调用WebService
      在.net中调用WebService就方便多了,没有必要自己写soap消息了,以上都是用XMLHTTP来发送WebService请求的,在.net只要添加了web引用,会自动为你创建一个代理类。然后使用代理类就像用自己定义的类一样方便。

    4、如何在ASP中调用由Delphi编写的WebService
    Q:那么又如何在ASP中调用由Delphi编写的WebService呢?
    A:上微软网站下个Microsoft SOAP Toolkit 3.0安装,就可以在asp里调用webservice了,调用方法如下:
    Microsoft SOAP Toolkit(MSST)可以到微软网站免费下载:http://download.microsoft.com/download/xml/Install/3.0/W982KMeXP/EN-US/SoapToolkit30.EXE
      <%  
      'Calling   a   Web   service   using   Microsoft   SOAP   Toolkit   3.0  
       
      OPTION   EXPLICIT  
       
      Dim   strWebSvcWSDLURL  
      Dim   objSOAPClient  
       
      strWebSvcWSDLURL   ="http://localhost/jfgl/jfglWebSrv.dll/wsdl/IjfglWebSrv"
       
      Set   objSOAPClient   =   Server.CreateObject("MSSOAP.SoapClient30")  
      objSOAPClient.ClientProperty("ServerHTTPRequest")   =   True  
       
      objSOAPClient.MSSoapInit   strWebSvcWSDLURL,   "",   "",   ""  
       
      dim   s  
      s   =   objSOAPClient.Get_Sql_Time   //调用soap里的方法  
      response.write   s  
      %>

    谢祥选【小宇飞刀(xieyunc)】
  • 相关阅读:
    JAVA基础--线程
    Flutter: SliverAppBar 应用程序栏与滚动视图集成,以便它可以根据滚动偏移量在高度上变化
    Flutter: MediaQuery
    Dart: puppeteer库
    Flutter: 监听App显示,隐藏
    Dart: 解析html字符串
    Dart: 编码和解码各种存档和压缩格式
    Dart: 执行shell命令
    运行Chrome浏览器如何添加Options
    Flutter 删除AppBar的返回icon
  • 原文地址:https://www.cnblogs.com/xieyunc/p/2793630.html
Copyright © 2011-2022 走看看