zz8zz 2017-03-28 09:08 采纳率: 0%
浏览 804
已结题

ksoap访问webservice上送自定义对象如何处理

服务端wsdl定于如下:

 <element name="doSelect”>//doSelect 为调用的方法
    <complexType>
    <sequence>
        <element name="sid" type="xsd:int"/>
        <element name="objectType" type="xsd:string"/>
        <element name="whereClause" type="xsd:string"/>
        <element name="maxRows" type="xsd:int"/>
        <element name="attributes" type="impl:ArrayOfString"/>
    </sequence>
    </complexType>
</element>
<element name="doSelectResponse”>//调用返回定义
    <complexType>
    <sequence>
        <element name="doSelectReturn" type="xsd:string"/>
    </sequence>
    </complexType>
</element>

//调用方法中一个参数定义(attributes)

 <complexType name="ArrayOfString">
    <sequence>
        <element maxOccurs="unbounded" name="string" type="xsd:string"/>
    </sequence>
</complexType>

以上都是服务端定义,没有服务端代码。其中一个参数attributes,type="impl:ArrayOfString" 不知道怎么传入,尝试了几种方法没有解决。

以下是代码:

 SoapObject request = new SoapObject(data.getServiceNameSpace(),"doSelect");

request.addProperty("sid", “26354758596”);

request.addProperty("objectType", "wf");

request.addProperty("whereClause", "assignee.last_name=‘liming’ AND status='PEND'");

request.addProperty("maxRows", 100);

request.addProperty("attributes”,_null);  //此处问题所在!!!!!!

SoapSerializationEnvelope envelope;

envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.bodyOut = request;

HttpTransportSE transport = new HttpTransportSE(data.getServerUrl());

transport.debug = true;

//调用WebService

try {

    transport.call(null, envelope);

    if (envelope.getResponse() != null) 
    {

        SoapObject loginresopnse = (SoapObject)envelope.bodyIn;
        String retStr = loginresopnse.getProperty("doSelectReturn").toString();

        Log.d("debug",retStr);

        return true;

    }
    
    return false;

} catch (IOException e) {
 
   Log.d("debug","in IOException");

   Log.d("info",e.getMessage());
   return false;

} catch (XmlPullParserException e) {

    Log.d("debug","in XmlPullParserException");

    Log.d("info",e.getMessage());
    return false;

}

  • 写回答

1条回答 默认 最新

  • zz8zz 2017-03-29 05:28
    关注

    没有人熟悉这方面么?

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?