Skip to content Skip to sidebar Skip to footer

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"