android调用webservices工具类

/*

 * webservices工具类

 * */

public class WSUtils {  

 

    public WSUtils() {  

    }   

    /** 

     * @param nameSpace ws的命名空间 

     * @param methodName  方法名称

     * @param params  方法参数

     * @param wsdl     ws的url地址

     * @return SoapObject  返回的数据

     */ 

 

    public static SoapObject callWS(String nameSpace, String methodName,  

            Map params, String wsdl) {  

 

        final String SOAP_ACTION=nameSpace+methodName;  

       

        SoapObject request = new SoapObject(nameSpace, methodName);  

       

        SoapObject soapResult=null;  

          

        if(params !=null && !params.isEmpty()){  

            for(Iterator it=params.entrySet().iterator();it.hasNext();){

              //遍历MAP  

                Map.Entry<String, Object> e=(Map.Entry<String, Object>) it.next();  

                request.addProperty(e.getKey().toString(),e.getValue());  

            }  

        }  

            /** 

             * 设置Soap版本 

             * 类型:VER1.0,VER1.1,VER1.2 

             */ 

 

            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);// SOAP 1.1  

              

            envelope.dotNet=true;//是否是dotNet WebService  

            envelope.bodyOut = request;  

 

            //HttpTransportSE ht = new HttpTransportSE(wsdl);  

            AndroidHttpTransport androidHT=new  AndroidHttpTransport(wsdl);   

            try {  

            // ht.call(SOAP_ACTION, envelope);  

                androidHT.call(SOAP_ACTION,envelope);  

            } catch (IOException e) {  

                Log.e("IOException:", e.getMessage());  

            } catch (XmlPullParserException e1) {  

                Log.e("XmlPullParserException", e1.getMessage());  

            }  

            try {  

                soapResult=(SoapObject)envelope.getResponse();  

            } catch (SoapFault e) {  

                Log.e("SoapFault",e.getMessage());  

            }  

        return soapResult;  

    }  

//调用webservices

 

            HashMap<String, Object> params = new HashMap<String, Object>();     

            params.put("theCityName", peoples[position]);     

            String wsdl = "webservice的wsdl地址";     

            String nameSpace = "wsdl中的namespace";     

            String methodName = "方法名";//     

            SoapObject results = WSUtils.callWS(nameSpace, methodName, params, wsdl);

 

posted on 2011-04-10 00:15  kitea  阅读(110)  评论(0)    收藏  举报