Nesting Properties Inside A Tag In Ksoap2
Hi i want to make a request for soap using above soap xml Copy
Then
SoapObjectrequest=newSoapObject(NAMESPACE, METHOD_NAME);
IUvailiuvail=newIUvail();
iuvail.setUnit("PC");
iuvail.setQty(3000);
request.addProperty("IUvail", iuvail);
SoapSerializationEnvelopeenvelope=newSoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
envelope.addMapping(TARGET_NAMESPACE, "IUvail", newIUvail.getClass());
AndroidHttpTransporttransport=newAndroidHttpTransport(URL);
try {
transport.call(NAMESPACE + METHOD_NAME, envelope);
/* Get the response: it depends on your web service implementation */
} catch (Exception e) {
e.printStackTrace();
}
Where NAMESPACE, URL, METHOD_NAME and TARGET_NAMESPACE depends on your ws.
Solution 2:
I had the same problem (accessing a SAP webservice with Android). There is an easy solution:
request.addProperty("IUvail", "<Unit>PC</Unit><Qty>3000</Qty>");
The whole access with authentication:
StringUSER="user";
StringPASSWORD="pwd";
StringNAMESPACE_SOAP="http://schemas.xmlsoap.org/soap/envelope/";
StringNAMESPACE_SAP="urn:sap-com:document:sap:rfc:functions";
StringSOAP_ACTION="http://server:port/webservice_root";
StringMETHOD_NAME="AvailCheck";
SoapObjectrequest=newSoapObject(NAMESPACE_SAP, METHOD_NAME);
request.addProperty("IUvail", "<Unit>PC</Unit><Qty>3000</Qty>");
SoapSerializationEnvelopeenvelope=newSoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.env = NAMESPACE_SOAP;
envelope.dotNet = false;
envelope.setOutputSoapObject(request);
HttpTransportSEandroidHttpTransport=newHttpTransportSE(
SOAP_ACTION);
androidHttpTransport.debug = true;
try {
List<HeaderProperty> headerList = newArrayList<HeaderProperty>();
headerList.add(newHeaderProperty("Authorization", "Basic "
+ org.kobjects.base64.Base64
.encode((USER + ":" + PASSWORD).getBytes())));
androidHttpTransport.call(SOAP_ACTION, envelope, headerList);
// SoapObject response = (SoapObject) envelope.getResponse();// response.getProperty(0).toString();// Object response = envelope.getResponse();SoapPrimitiveresult= (SoapPrimitive) envelope.getResponse();
Log.d("webservice", "Result: " + result.toString());
} catch (Exception e) {
e.printStackTrace();
Log.e("WebserviceException", e.getMessage(), e);
Log.d("WebserviceException", "[requestDump] "
+ androidHttpTransport.requestDump);
Log.d("WebserviceException", "[responseDump] "
+ androidHttpTransport.responseDump);
}
Solution 3:
try doing something like this,
SoapObjectrequest=newSoapObject(NAMESPACE,
METHOD_NAME);
request.addProperty("username", username);
request.addProperty("username", password);
SoapSerializationEnvelopeenvelope=newSoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSEandroidHttpTransport=newHttpTransportSE(
URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
} catch (IOException ioex) {
ioex.printStackTrace();
}
Post a Comment for "Nesting Properties Inside A Tag In Ksoap2"