使用Web Service总结

1.用JS访问Web Service:

  A.webservice.htc得到结果,代码如下:    B.XML访问Web Service,得到结果:

< body MS_POSITIONING = " GridLayout "  onload = " loadit('5'); " >
    
    
< form id = " Form1 "  method = " post "  runat = " server " >
    
< 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://fenglin.xland.cn " ;
        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/envelop/"> ' ;
        data
= data + " <soap:Body> " ;
        data
= data + ' <isNumber xmlns="http://tempuri.org/myService/test"> ' ;
        data
= data + ' <str> ' + value + ' </str> ' ;
        data
= data + ' </isNumber> ' ;
        data
= data + ' </soap:Body> ' ;
        data
= data + ' </soap:Envelope> ' ;
        alert(data);
        r
= PostRequestData(url,data);
        document.write(r);
   }
    
</ script >

     
</ form >
    
  
</ body >
2.用 .Net 后台调用 Web Service 得到结果:
A.    同步调用(简单):
            
//  创建 XML Web Service 代理类的实例
            localhost1.Service2 s = new  example4.localhost1.Service2();
            
string  aa = s.HelloWorld();
B.    异步调用(复杂、快速):
            
//  创建 XML Web Service 代理类的实例
            localhost1.Service2 s = new  example4.localhost1.Service2();
            
//  DefaultCredentials 分配给 Web 服务客户端代理的 Credentials 属性
            s.Credentials = System.Net.CredentialCache.DefaultCredentials;
            
// 创建对回调委托的引用
            AsyncCallback cb = new  AsyncCallback(ServiceCallback);
            
// 调用begin方法,将回调委托和此代理类实例作为AsyncState对象传递
            s.BeginHelloWorld(cb,s);

private   void  ServiceCallback(IAsyncResult ar)
        {
            
// 将AsyncState对象转换为代理对象
            localhost1.Service2 s = (localhost1.Service2)ar.AsyncState;
            
// 调用end方法并将响应指定数据
             try
            {
                
lock ( this )
                {
                    
string  str = s.EndHelloWorld(ar);
                    Response.Write(str);
                }
            }
            
catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
        }

< script language = " javascript " >
        
<!--
        var str_province;
        var str_city;
        var str_area;
        function window_onload()
        {
            service.useService(
" http://localhost/serviceExample1/Service1.asmx?WSDL " , " myselect " );
            str_province
= service.myselect.callService(province_Result, " getProvince " );
        }
        function province_Result(result)
        {
            
if ( ! result.error)
            {
                document.all(
" select_province " ).length = 0 ;
                
if (result.value.substring( 0 , 1 ) == " , " )
                    result.value
= result.value.substring( 1 ,result.length);
                var piArray
= result.value.split( ' , ' );
                
for (var i = 0 ;i < piArray.length;i ++ )
                {
                    var ary1
= piArray[i].toString().split( ' | ' );
                    document.all(
" select_province " ).options.add( new  Option(ary1[ 1 ].toString(),ary1[ 0 ].toString()));
                }
            }
        }
        function province_onchange()
        {
            var province
= document.getElementById( " select_province " );
            var pindex
= province.selectedIndex;
            var pValue
= province.options[pindex].value;
            var pText
= province.options[pindex].text;
            str_city
= service.myselect.callService(city_Result, " getCity " ,pValue);
        }
        function city_onchange()
        {
            var city
= document.getElementById( " select_city " );
            var cindex
= city.selectedIndex;
            var cValue
= city.options[cindex].value;
            var cText
= city.options[cindex].text;
            str_area
= service.myselect.callService(area_Result, " getArea " ,cValue);
        }
        function city_Result(result)
        {
            
if ( ! result.error)
            {
                document.all(
" select_city " ).length = 0 ;
                
if (result.value.substring( 0 , 1 ) == " , " )
                {
                    result.value
= result.value.substring( 1 ,result.length);
                }
                var piArray
= result.value.split( " , " );
                
for (var i = 0 ;i < piArray.length;i ++ )
                {
                    var ary1
= piArray[i].toString().split( " | " );
                    document.all(
" select_city " ).options.add( new  Option(ary1[ 1 ].toString(),ary1[ 0 ].toString()));
                }
            }
        }
        function area_Result(result)
        {
            
if ( ! result.error)
            {
                document.all(
" select_area " ).length = 0 ;
                
if (result.value.substring( 0 , 1 ) == " , " )
                    result.value
= result.value.substring( 1 ,result.length);
                var ciArray
= result.value.split( " , " );
                
for (var i = 0 ;i < ciArray.length;i ++ )
                {
                    var ary1
= ciArray[i].toString().split( " | " );
                    document.all(
" select_area " ).options.add( new  Option(ary1[ 1 ].toString(),ary1[ 0 ].toString()));
                }
            }
        }
        
-->
        
</ script >
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值