zoukankan      html  css  js  c++  java
  • Java调用Webservice(asmx)的几个例子

    Java调用Webservice(asmx)的几个例子
    2009-06-28 17:07

    写了几个调用例子:

    1、

    import org.apache.axis.client.*;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.ParameterMode;
    import javax.xml.rpc.JAXRPCException;
    import javax.xml.rpc.ServiceFactory;

    public class TestWebService {

    /**
    * @param args
    */
    public static void main(String[] args) {
       // TODO Auto-generated method stub 
       System.out.println("Start invoking....");
       try
       {
         String endPoint="http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx";
         Service service = new Service();
         Call call = (Call)service.createCall();
         call.setTargetEndpointAddress(new java.net.URL(endPoint));
         call.setOperation("getVersionTime");
         call.setUseSOAPAction(true);
         call.setSOAPActionURI("");   
         call.setOperationName(new QName("www.webxml.com.cn","getVersionTime"));      
         call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);  
         String str=(String)call.invoke( new Object[]{}); 
         System.out.println(str);             
       }catch(Exception e)
       {
         e.printStackTrace();
       }   
    }

    }




    2、

    import java.util.LinkedList;
    import java.util.List;
    import java.util.Map;
    import java.util.Vector;

    import javax.xml.namespace.QName;

    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;

    public class GetIPContent 
    {
         private String url="http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx";
         private String soapaction=""; 

         public GetIPContent()
         { 
             Service service=new Service();
             try{
                 Call call=(Call)service.createCall();            
                 call.setTargetEndpointAddress(url);            
                 call.setOperationName(new QName(soapaction,"getGeoIPContext")); 
               
                 call.setReturnType(new QName(soapaction,"getGeoIPContext"),Vector.class);    

                 call.setUseSOAPAction(true);
                 call.setSOAPActionURI(soapaction + "getGeoIPContext");    

                 Vector v=(Vector)call.invoke(new Object[]{});//调用方法并传递参数        
                 for(int i=0;i<v.size();i++)
                 {
                     System.out.println(v.get(i));
                 }            

             }catch(Exception ex)
             {
             ex.printStackTrace();
             }        
         }

         public static void main(String args[])
         {
         GetIPContent gip=new GetIPContent();
         }


    }




    3、

    import java.util.LinkedList;
    import java.util.List;
    import java.util.Map;
    import java.util.Vector;

    import javax.xml.namespace.QName;

    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;

    public class PutWeather 
    {
         private String url="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx";//提供接口的地址
         private String soapaction="";   //域名,这是在server定义的

         public PutWeather()
         {
             String City="北京";        
             Service service=new Service();
             try{
                 Call call=(Call)service.createCall();            
                 call.setTargetEndpointAddress(url);            
                 call.setOperationName(new QName(soapaction,"getWeatherbyCityName")); //设置要调用哪个方法
                 call.addParameter(new QName(soapaction,"theCityName"), //设置要传递的参数
                         org.apache.axis.encoding.XMLType.XSD_STRING,
    javax.xml.rpc.ParameterMode.IN);
                 call.setReturnType(new QName(soapaction,"getWeatherbyCityName"),Vector.class); //要返回的数据类型(自定义类型)

    //             call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//(标准的类型)

                 call.setUseSOAPAction(true);
                 call.setSOAPActionURI(soapaction + "getWeatherbyCityName");    

                 Vector v=(Vector)call.invoke(new Object[]{City});//调用方法并传递参数        
                 for(int i=0;i<v.size();i++)
                 {
                     System.out.println(v.get(i));
                 }            

             }catch(Exception ex)
             {
             ex.printStackTrace();
             }        
         }

         public static void main(String args[])
         {
             PutWeather pw=new PutWeather();
         }


    }


    其中第三个是转载的,可惜,地址不知道了……

    --!Sorry

    写这个以防以后想用的时候找不到例子~~这个是个不错的webservice地址 当然是免费的了。

    呵呵~~~突然发现这个东西不错,比写b/s程序好多了,给用户提供的接口多,丰富,安全,可扩展性好……现在的web技术真的是越来越好了!

    黑客发明网络的第一天,就注定了网络主宰地球的一天。

  • 相关阅读:
    ORA-04091错误原因与解决方法
    Vue中过滤器及自定义插件
    解决 React 中的 input 输入框在中文输入法下的 bug
    总结18个webpack插件
    使用Vue Composition API写出清晰、可扩展的表单
    实现微前端需要了解的 Vue Genesis 渲染器
    React 监听页面滚动,界面动态显示
    漫谈受控与非受控组件
    vue的完整版和运行时版的区别
    vue中利用provide和inject实现页面刷新(无白屏)重载组件
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/6649750.html
Copyright © 2011-2022 走看看