[英]How to pass object from android to soap web service?
我需要将一个对象从android传递给soap Web服务,但是我得到一个驱动程序对象为null的错误。 如何在不收到此错误的情况下将对象传递给soap Web服务?
这是对象:
<soap:Body>
<CreateDriver xmlns="http://tempuri.org/">
<objDriver>
<status>int</status>
<DriverId>int</DriverId>
<FirstName>string</FirstName>
<LastName>string</LastName>
<AccessCode>string</AccessCode>
<Picture>string</Picture>
<Signature>string</Signature>
<Email>string</Email>
<Phone>string</Phone>
<Status>int</Status>
<CreationDate>dateTime</CreationDate>
<ModificationDate>dateTime</ModificationDate>
<CreatedUserId>int</CreatedUserId>
<CreatedUser>
<status>int</status>
<UserID>int</UserID>
<FirstName>string</FirstName>
<LastName>string</LastName>
<UserName>string</UserName>
<Password>string</Password>
<ConfirmPassword>string</ConfirmPassword>
<UserMail>string</UserMail>
<CreationDate>dateTime</CreationDate>
<ModificationDate>dateTime</ModificationDate>
<Status>int</Status>
<CreatedUserId>int</CreatedUserId>
<ModifiedUserId>int</ModifiedUserId>
</CreatedUser>
<ModifiedUserId>int</ModifiedUserId>
<ModifiedUser>
<status>int</status>
<UserID>int</UserID>
<FirstName>string</FirstName>
<LastName>string</LastName>
<UserName>string</UserName>
<Password>string</Password>
<ConfirmPassword>string</ConfirmPassword>
<UserMail>string</UserMail>
<CreationDate>dateTime</CreationDate>
<ModificationDate>dateTime</ModificationDate>
<Status>int</Status>
<CreatedUserId>int</CreatedUserId>
<ModifiedUserId>int</ModifiedUserId>
</ModifiedUser>
</objDriver>
<bytArrPicture>base64Binary</bytArrPicture>
<bytArrSignature>base64Binary</bytArrSignature>
</CreateDriver>
</soap:Body>
</soap:Envelope>
这是我的代码:
public void postData() throws IOException, XmlPullParserException {
CreateDriver cDriver = new CreateDriver();
cDriver.setFirstName("n");
cDriver.setLastName("n");
SoapObject objDriver = new SoapObject(NAMESPACE, METHOD_NAME);
objDriver.addProperty("FirstName", "n");
objDriver.addProperty("LastName", "n");
// request.
// request.addProperty("CreateDriverSimple",request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.setOutputSoapObject(objDriver);
envelope.dotNet = true;
// this is the actual part that will call the webservice
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapObject result = (SoapObject) envelope.bodyIn;
检查这个帖子,他有类似的问题,解决方案提供了Android ksoap2参数问题
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
//Use this to add parameters
//request.addProperty("Parameter","Value");
//Declare the version of the SOAP request
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
//Needed to make the internet call
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
//this is the actual part that will call the webservice
androidHttpTransport.call(SOAP_ACTION, envelope);
} catch (Exception e) {
e.printStackTrace();
}
// Get the SoapResult from the envelope body.
SoapObject result = (SoapObject)envelope.bodyIn;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.