I am trying to create a SOAP client in my android app. I have already tested the server with php SOAP client, and it has been working. But in my android app I am still getting exceptions. Can anyone help me whats wrong and how to fix it? Thanks
PHP
<?php
class service
{
public function service()
{ }
public function login($nickname, $password)
{
$sql = "select nick from user
where
nick =\"$nick\"
and
pass = \"$password\"";
if (($result = $this->db->query($sql)) && ($result->num_rows == 1))
return true;
else
return false;
}
}
$server = new SoapServer(null, array(
'uri' => "urn://www.domain.cz",
'soap_version' => SOAP_1_2)
);
$server->setClass("service");
$server->handle();
?>
Android
private static String SOAP_ACTION = "http://www.domain.cz/server/server.php";
private static String NAMESPACE = "urn://www.domain.cz";
//need fix namespace to work, final solution
// private static String NAMESPACE = "http://www.domain.cz/server/";
private static String METHOD_NAME = "login";
private static String URL = "http://www.domain.cz";
public void Connect()
{
//Initialize soap request + add parameters
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
//Use this to add parameters
request.addProperty("nick","peter");
request.addProperty("password","somepassword");
//Declare the version of the SOAP request
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);
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);//HERE is xmlpullparserexception after a while
} catch (Exception e) {
e.printStackTrace();
}
// Get the SoapResult from the envelope body.
SoapObject result = (SoapObject)envelope.bodyIn;
if(result != null){
TextView t = (TextView)this.findViewById(R.id.resultbox);
//Get the first property and change the label text
t.setText("SOAP response:
" + result.getProperty(0).toString());
}
}