package com.rubika.aotalk.rkn;
import java.util.ArrayList;
import java.util.List;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import com.rubika.aotalk.util.Logging;
public class CallSoap {
private static final String APP_TAG = "--> The Leet :: CallSoap";
private String OPERATION_NAME = "";
private String WSDL_TARGET_NAMESPACE = "http://rubi-ka.net/";
private String SOAP_ADDRESS = "https://rubi-ka.net/API/v1/Feed.asmx";
public CallSoap(String operation)
{
this.OPERATION_NAME = operation;
}
public List<String> Call(List<PropertyInfo> properties)
{
List<String> resultData = new ArrayList<String>();
SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE, OPERATION_NAME);
for (PropertyInfo pi : properties)
{
request.addProperty(pi);
}
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS);
SoapObject response = new SoapObject();
try
{
httpTransport.call(WSDL_TARGET_NAMESPACE + OPERATION_NAME, envelope);
response = (SoapObject)envelope.bodyIn;
}
catch (Exception exception)
{
Logging.log(APP_TAG, exception.getMessage());
return null;
}
Logging.log(APP_TAG, response.toString());
if (response.getPropertyCount() > 0)
{
SoapObject data = null;
try
{
data = (SoapObject) response.getProperty(0);
}
catch (Exception exception)
{
Logging.log(APP_TAG, exception.getMessage());
}
if (data == null)
{
resultData.add(response.getPropertyAsString(0));
}
else
{
for (int i = 0; i < data.getPropertyCount(); i++)
{
resultData.add(data.getPropertyAsString(i));
}
}
return resultData;
}
else
{
return null;
}
}
}