热门IT资讯网

android ksoap2 中把XML(DataSet) 当做参数传递

发表于:2024-11-26 作者:热门IT资讯网编辑
编辑最后更新 2024年11月26日,我的android app中需要发送webservice ,于是我使用了 ksop2 进行发送,在测试过程中不是很顺利,不能正常工作.我的web service 请求格式如下[html] view p

我的android app中需要发送webservice ,于是我使用了 ksop2 进行发送,在测试过程中不是很顺利,不能正常工作.
我的web service 请求格式如下

[html] view plaincopy

  1. <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">

  2. <Body>

  3. <UpdateVehicleViaObj xmlns="http://tempuri.org/">

  4. <userHash>[string?]userHash>

  5. <vehicleObject>

  6. <Colour xmlns="http://schemas.datacontract.org/2004/07/StockService">[string?]Colour>

  7. <Comments xmlns="http://schemas.datacontract.org/2004/07/StockService">[string?]Comments>

  8. <Condition xmlns="http://schemas.datacontract.org/2004/07/StockService">[string?]Condition>

  9. vehicleObject>

  10. UpdateVehicleViaObj>

  11. Body>

  12. Envelope>



我在android 代码中使用 ksoap2 如下

[java] view plaincopy

  1. SoapObject request = new SoapObject("Namespace", "methodname");

  2. request.addProperty(properyObject);

  3. SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

  4. //SOAP is implemented in dotNet true/false.

  5. envelope.dotNet = true;

  6. MarshalDouble md = new MarshalDouble();

  7. //envelope.implicitTypes = true;

  8. envelope.implicitTypes = true;

  9. md.register(envelope);

  10. //Set request data into envelope and send request using HttpTransport

  11. envelope.setOutputSoapObject(request);

  12. HttpTransportSE androidHttpTransport = new HttpTransportSE(mInObj.getUrl(), networkTimeOut);

  13. androidHttpTransport.debug= true;

  14. androidHttpTransport.call(SoapAction, envelope,headerPropertyArrayList);



ksop2 处理请求后变成这样

[html] view plaincopy

  1. <v:Envelope xmlns: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><UpdateVehicleViaObj xmlns="http://tempuri.org/" id="o0" c:root="1"><userHash>B5B2FDF87E848946userHash><vehicleObject><Colour>redColour><

  2. &

  3. <Comments >redComments ><<Condition >redCondition ><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人 整理发布,转载须标明出处。


0