posts - 66,comments - 41,trackbacks - 0
          近日在項目中寫了個OPhone 調用Webservice的工具類,主要是使用了KSoap2來實現的,代碼如下:

           1package com.ictehi.ophone.util;   
           2  
           3import java.io.IOException;   
           4import java.util.Iterator;   
           5import java.util.Map;   
           6  
           7import org.ksoap2.SoapEnvelope;   
           8import org.ksoap2.SoapFault;   
           9import org.ksoap2.serialization.SoapObject;   
          10import org.ksoap2.serialization.SoapSerializationEnvelope;   
          11import org.ksoap2.transport.AndroidHttpTransport;   
          12import org.ksoap2.transport.HttpTransportSE;   
          13import org.xmlpull.v1.XmlPullParserException;   
          14  
          15import android.util.Log;   
          16  
          17public class WSUtils {   
          18  
          19    public WSUtils() {   
          20    }
             
          21       
          22    /**  
          23     * @author Eric.Lu  
          24     * @param endPoint  
          25     * @param methodName  
          26     * @param params  
          27     * @param wsdl  
          28     * @return SoapObject  
          29     */
            
          30    public static SoapObject callWS(String nameSpace, String methodName,   
          31            Map params, String wsdl) {   
          32  
          33        final String SOAP_ACTION=nameSpace+methodName;   
          34        SoapObject request = new SoapObject(nameSpace, methodName);   
          35        SoapObject soapResult=null;   
          36           
          37        if(params !=null && !params.isEmpty()){   
          38            for(Iterator it=params.entrySet().iterator();it.hasNext();){//遍歷MAP   
          39                Map.Entry<String, Object> e=(Map.Entry<String, Object>) it.next();   
          40                request.addProperty(e.getKey().toString(),e.getValue());   
          41            }
             
          42        }
             
          43           
          44            /**  
          45             * 設置Soap版本  
          46             * 類型:VER1.0,VER1.1,VER1.2  
          47             */
            
          48            // SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER10);//SOAP 1.0   
          49            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);// SOAP 1.1   
          50            // SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER12);//SOAP 1.2   
          51               
          52            envelope.dotNet=true;//是否是dotNet WebService   
          53            envelope.bodyOut = request;   
          54  
          55//          HttpTransportSE ht = new HttpTransportSE(wsdl);   
          56            AndroidHttpTransport androidHT=new  AndroidHttpTransport(wsdl);    
          57            try {   
          58//              ht.call(SOAP_ACTION, envelope);   
          59                androidHT.call(SOAP_ACTION,envelope);   
          60            }
           catch (IOException e) {   
          61                Log.e("IOException:", e.getMessage());   
          62            }
           catch (XmlPullParserException e1) {   
          63                Log.e("XmlPullParserException", e1.getMessage());   
          64            }
             
          65            try {   
          66                soapResult=(SoapObject)envelope.getResponse();   
          67            }
           catch (SoapFault e) {   
          68                Log.e("SoapFault",e.getMessage());   
          69            }
             
          70        return soapResult;   
          71    }
             
          72}
            
          73
          74
          75本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/kylixlu/archive/2010/03/12/5372846.aspx
          調用這個工具類的方法如下:
           1HashMap<String, Object> params = new HashMap<String, Object>();      
           2        params.put("theCityName", peoples[position]);      
           3        String wsdl = "webservice的wsdl地址";      
           4        String nameSpace = "wsdl中的namespace";      
           5        String methodName = "方法名";//      
           6        // SoapObject result = WSUtils.callWS(nameSpace, methodName,      
           7        // wsdl,peoples[position]);      
           8        SoapObject result = WSUtils.callWS(nameSpace, methodName, params, wsdl);    
           9
          10
          11本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/kylixlu/archive/2010/03/12/5372846.aspx


          MSN:
          posted on 2010-03-24 09:23 kylixlu 閱讀(807) 評論(0)  編輯  收藏 所屬分類: Android
          主站蜘蛛池模板: 桃园县| 六盘水市| 新巴尔虎左旗| 阿鲁科尔沁旗| 札达县| 上林县| 隆安县| 宁国市| 香河县| 福州市| 门源| 监利县| 会宁县| 正镶白旗| 湖州市| 织金县| 云阳县| 深州市| 府谷县| 民乐县| 丹巴县| 孝昌县| 长垣县| 卓资县| 阳原县| 塔城市| 通山县| 扎鲁特旗| 汽车| 荔浦县| 乌拉特前旗| 永泰县| 墨竹工卡县| 阳谷县| 故城县| 合肥市| 贡嘎县| 阿克| 突泉县| 虎林市| 广东省|