当前位置: 代码迷 >> Web前端 >> Android 开发记要 webservice调用:ksoap2框架
  详细解决方案

Android 开发记要 webservice调用:ksoap2框架

热度:271   发布时间:2012-07-29 15:26:13.0
Android 开发记录 webservice调用:ksoap2框架

1. 引入项目包:ksoap2-android-assembly-2.5.7.jar

?

2. java程序:

?

?

    protected ResultDO callWebservice(String webserviceUrl, SoapObject soapObject){
        //创建HttpTransportSE对象,通过HttpTransportSE类的构造方法可以指定WebService的url 
        HttpTransportSE transport = new HttpTransportSE(webserviceUrl, TIMEOUT);// 这里url为webservice地址
        
        //指定WebService的命名空间和函数名
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.bodyOut = transport;
        envelope.setOutputSoapObject(soapObject);

        //使用call方法调用WebService方法
        SoapObject sb = null;
        try {
            transport.call(null, envelope);
            sb = (SoapObject) envelope.bodyIn;
        } catch (IOException e) {
            e.printStackTrace();
            return new ResultDO(IConsts.RESULT_CODE_TIMEOUT);
        } catch (Exception e) {
            e.printStackTrace();
            return new ResultDO(IConsts.RESULT_CODE_CALL_ERROR);
        }

//        Object sb= envelope.getResponse();
        String jsonString = null;
        if(sb.getPropertyCount() > 0){
            jsonString = (String)sb.getProperty(0).toString();// 获取从服务器端返回的json字符串
        }else{
            return new ResultDO(IConsts.RESULT_CODE_RESOLVE_ERROR);
        }
        return createFromJSONString(jsonString);
    }
    public ResultDO getData(){
        SoapObject soapObject = new SoapObject(NAMESPACE, METHOD);// namespace 和 method参数
        soapObject.addProperty(param, param);
        super.callWebservice(ENDPOINT, soapObject);// endpoint 为webservice调用地址,以?wsdl结尾
        
        return null;
    }
?

?

  相关解决方案