android ksoap2 中把XML(DataSet) 当做参数传递
16lz
2022-05-13
我的android app中需要发送webservice ,于是我使用了 ksop2 进行发送,在测试过程中不是很顺利,不能正常工作.
我的web service 请求格式如下
- <Envelopexmlns="http://schemas.xmlsoap.org/soap/envelope/">
- <Body>
- <UpdateVehicleViaObjxmlns="http://tempuri.org/">
- <userHash>[string?]</userHash>
- <vehicleObject>
- <Colourxmlns="http://schemas.datacontract.org/2004/07/StockService">[string?]</Colour>
- <Commentsxmlns="http://schemas.datacontract.org/2004/07/StockService">[string?]</Comments>
- <Conditionxmlns="http://schemas.datacontract.org/2004/07/StockService">[string?]</Condition>
- </vehicleObject>
- </UpdateVehicleViaObj>
- </Body>
- </Envelope>
我在android 代码中使用 ksoap2 如下
[java] view plain copy- SoapObjectrequest=newSoapObject("Namespace","methodname");
- request.addProperty(properyObject);
- SoapSerializationEnvelopeenvelope=newSoapSerializationEnvelope(SoapEnvelope.VER11);
- //SOAPisimplementedindotNettrue/false.
- envelope.dotNet=true;
- MarshalDoublemd=newMarshalDouble();
- //envelope.implicitTypes=true;
- envelope.implicitTypes=true;
- md.register(envelope);
- //SetrequestdataintoenvelopeandsendrequestusingHttpTransport
- envelope.setOutputSoapObject(request);
- HttpTransportSEandroidHttpTransport=newHttpTransportSE(mInObj.getUrl(),networkTimeOut);
- androidHttpTransport.debug=true;
- androidHttpTransport.call(SoapAction,envelope,headerPropertyArrayList);
ksop2 处理请求后变成这样 [html] view plain copy
- <v:Envelopexmlns:i="http://www.w3.org/2001/XMLSchema-instance"xmlns:d="http://www.w3.org/2001/XMLSchema"xmlns:c="http://schemas.xmlsoap.org/soap/encoding/"xmlns:v="http://schemas.xmlsoap.org/soap/envelope/"><v:Header/><v:Body><UpdateVehicleViaObjxmlns="http://tempuri.org/"id="o0"c:root="1"><userHash>B5B2FDF87E848946</userHash><vehicleObject><Colour>red</Colour><
- &
- <Comments>red</Comments><<Condition>red</Condition><</vehicleObject></UpdateVehicleViaObj></v:Body></v:Envelope>
求救:
处理方法
看看官方的 ksoap2 文档
https://code.google.com/p/ksoap2-android/wiki/CodingTipsAndTricks#sending/receiving_array_of_complex_types_or_primitives
你可以创建一个实现marshable接口的类,并在类中添加其他属性
原文地址:http://www.itmmd.com/201412/296.html
该文章由萌萌的IT人整理发布,转载须标明出处。
更多相关文章
- Android(安卓)NDK 教程 - NDK环境配置和 Android(安卓)Studio 中
- Android(安卓)中Preferences的使用!
- Android(安卓)中的网络操作(HttpURLConnection)
- Android高手进阶教程(十七)之---Android中Intent传递对象的两种
- 【Android】Android中Intent的用法总结
- Android如何通过https协议下载自己的https网站上的文件/apk等
- Android(安卓)启动另外activity并返回结果
- Android(安卓)各大网络请求库的比较及实战
- JOIM:Android通过IPCamera通过互联网实时监控功能的实现