Android调用开发的webservice 步骤

11/12/2012 10:23:42 PM

1、引用ksoap2类库,在调用的代码文件中引用命名空间

  1. import org.ksoap2.SoapEnvelope;  
  2. import org.ksoap2.SoapFault;  
  3. import org.ksoap2.serialization.SoapObject;  
  4. import org.ksoap2.serialization.SoapSerializationEnvelope;  
  5. import org.ksoap2.transport.HttpTransportSE;  

代码:

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

 

2、在AndroidManifest.xml中加入网络访问权限,<uses-permission android:name="android.permission.INTERNET"></uses-permission>