zoukankan      html  css  js  c++  java
  • 几种调用WebService的方法

    几种调用WebService的方法

    几种调用WebService的方法     选择自 Megres 的 Blog  

    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 + "|" + 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中

    <%@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中

    在.net中调用WebService就方便多了,没有必要自己写soap消息了,以上都是用XMLHTTP来发送WebService请求的,在.net只要添加了web引用,会自动为你创建一个代理类。然后使用代理类就像用自己定义的类一样方便。
    作者Blog:http://blog.csdn.net/Megres/
  • 相关阅读:
    02.jwt单点登录
    04.RBAC
    COM interop
    C++、c#互调用之VC6 调用 VC6 COM
    Type Library Importer (Tlbimp.exe)
    C++、C#互调用之C++ 调用C# dll
    VS tools
    Type Library to Assembly 转换摘要
    7个顶级心理预言
    c++、C#互调用之c# 调用 vc6 COM
  • 原文地址:https://www.cnblogs.com/oop/p/160925.html
Copyright © 2011-2022 走看看