首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

android下使用Soap协议的简单实例

2012-11-22 
android上使用Soap协议的简单实例话不多说,先上代码:package XXXimport org.ksoap2.SoapEnvelopeimport

android上使用Soap协议的简单实例

话不多说,先上代码:

package XXX;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;import org.xmlpull.v1.XmlPullParserException;import java.io.IOException;import java.net.InetSocketAddress;/** * 获取应用XX关系类. */public class OrderRelation {    /** 命名空间. */    private final static String NAME_SPACE = "urn:AppBackgroundSpEngine";    /** 方法. */    private final static String METHOD_NAME = "appSignRight";    /** WSDL文件的URL. */    private final static String WSDL_URL = "http://xxx/services/AppBackgroundSpEngine?wsdl";    /**     * <p>     * 获取应用的XX关系接口     * </p>     *      * @param in XX关系的输入参数     * @return XX关系结果     */    public static OrderRelationResult fetch(OrderRalationInput in) {        if(in == null) {            throw new IllegalArgumentException("Input parameter is null");        }                final OrderRelationResult result = new OrderRelationResult();        final SoapObject so = new SoapObject(NAME_SPACE, METHOD_NAME);        so.addProperty("transId", in.getTransId());        so.addProperty("mobile", in.getUserId());        so.addProperty("imsi", in.getImsi());        so.addProperty("appId", in.getAppId());        so.addProperty("timeStamp", in.getTimeStamp());        so.addProperty("clientType", in.getClientType());        so.addProperty("sig", in.getSig());        final SoapSerializationEnvelope se = new SoapSerializationEnvelope(SoapEnvelope.VER11);        se.bodyOut = so;        final HttpTransportSE ht = new HttpTransportSE(WSDL_URL);        try {            ht.call(NAME_SPACE, se);            final SoapObject response = (SoapObject) se.bodyIn;            if (response != null) {                System.out.println("response:"+ response);                result.setResultCode(Integer.parseInt(response.getPropertyAsString("resultCode")));                result.setTransId(response.getPropertyAsString("transId"));                result.setType(Integer.parseInt(response.getPropertyAsString("type")));            }        } catch (IOException e) {            e.printStackTrace();            return null;        } catch (XmlPullParserException e) {            e.printStackTrace();            return null;        } catch (NullPointerException e) {            e.printStackTrace();            return null;        }        return result;    }}

补充说明:

1.上面的name space,method name 可以通过soap UI工具查看而得到;

2.然后附上一个自己裁剪过的android上的soap包:http://download.csdn.net/detail/androidzhaoxiaogang/4780962 ;

热点排行