[android]代码库
package com.example.common;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
 
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
 
import android.util.Log;
 
public class MyWebService {
    /**
     * 调用WebService
     *
     * @param nameSpace
     *            命名空间
     * @param methodName
     *            调用的方法名称
     * @param url
     *            地址
     * @param soapAction
     *            命名空间和方法名
     * @param map
     *            参数【键值对传值】
     * @return
     */
    public SoapObject getWebServiceInfo(String nameSpace, String methodName,
            String url, String soapAction, HashMap<String, Object> map) throws Exception {
        // 指定WebService的命名空间和调用的方法名
        SoapObject rpc = new SoapObject(nameSpace, methodName);// xxxxxxxxxxxx
        // 设置需调用WebService接口需要传入的参数(通过hashmap遍历)
        Set<Entry<String, Object>> set = map.entrySet();
        Iterator<Entry<String, Object>> iterator2 = set.iterator();
        while (iterator2.hasNext()) {
            Map.Entry<String, Object> entry = iterator2.next();
            rpc.addProperty(entry.getKey(), entry.getValue());
        }
        // 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                SoapEnvelope.VER11);
        envelope.bodyOut = rpc;
        // 设置是否调用的是dotNet开发的WebService
        envelope.dotNet = true;
        // 等价于envelope.bodyOut = rpc;
        envelope.setOutputSoapObject(rpc);
        HttpTransportSE transport = new HttpTransportSE(url,30000);// xxxxxxxxxxxxxxxx
            transport.call(soapAction, envelope);// xxxxxxxxxx
        // 获取返回的数据
        SoapObject object = (SoapObject) envelope.bodyIn;
        return object;
    }
}
[源代码打包下载]