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技术真的是越来越好了!

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

  • 相关阅读:
    poj 2763 Housewife Wind
    hdu 3966 Aragorn's Story
    poj 1655 Balancing Act 求树的重心
    有上下界的网络流问题
    URAL 1277 Cops and Thieves 最小割 无向图点带权点连通度
    ZOJ 2532 Internship 网络流求关键边
    ZOJ 2760 How Many Shortest Path 最大流+floyd求最短路
    SGU 438 The Glorious Karlutka River =) 拆点+动态流+最大流
    怎么样仿写已知网址的网页?
    5-10 公路村村通 (30分)
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/6649750.html
Copyright © 2011-2022 走看看