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 + "|" + 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引用,会自动为你创建一个代理类。然后使用代理类就像用自己定义的类一样方便。
  • 相关阅读:
    IE6-9中tbody的innerHTML不能赋值bug
    matchesSelector及低版本IE中对该方法的实现
    JavaScript日期组件的实现
    IE6/7/8中parseInt第一个参数为非法八进制字符串且第二个参数不传时返回值为0
    子程序设计原则
    仅IE6中链接A的href为javascript协议时不能在当前页面跳转
    JavaScript获取图片的原始尺寸
    JavaScript判断图片是否加载完成的三种方式
    Mac OS X 快捷键
    IE6-8中Date不支持toISOString方法
  • 原文地址:https://www.cnblogs.com/joeblackzqq/p/1957837.html
Copyright © 2011-2022 走看看