Problems getting Ksoap2 client to talk to PHP based webservice
===

I'm having issues getting ksoap2 clients on a PC and Android to properly talk with a PHP webservice. I have tried both PHP's included libraries and nusoap and non of it works.

Forgot error. Both the Android and PC client give a org.xmlpull.v1.XmlPullParserException
but the messages are different. PC for instance gives *PI must not start with xml*


Here's the Code for my PC client. 

    import org.ksoap2.SoapEnvelope;
    import org.ksoap2.serialization.SoapObject;
    import org.ksoap2.serialization.SoapSerializationEnvelope;
    import org.ksoap2.transport.*;
    	
    public class client {
    	
    
    
    	public static void main(java.lang.String args[]) {
    		final String SOAP_ACTION = "http://secure.g4apps.com/submitAxios/writegpsdata";
    		final String METHOD_NAME = "writegpsdata";
    		final String NAMESPACE = "http://secure.g4apps.com/submitAxios/";
    		final String URL = "http://secure.g4apps.com/submitAxios.php";
    		
    		SoapObject rpc = new SoapObject(NAMESPACE,METHOD_NAME);
    		SoapSerializationEnvelope env = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    		rpc.addProperty("writegpsdataRequest","A1,E1,E1,AT333AT333,9055627513,2012-02-02 02:02:02,2012-02-02 02:02:02,-454545.343434,434343.232323,A334A334A334A443X,1000000,3434");
    	       
    		
    		env.bodyOut=rpc;
    		env.encodingStyle = SoapSerializationEnvelope.XSD;
    		
    		HttpTransportSE ht = new HttpTransportSE(URL);
    		ht.debug = true;
    		
    		try {
    			ht.call(SOAP_ACTION, env);
    			 
    			System.out.println(ht.requestDump);
    			
    		}
    		catch(org.xmlpull.v1.XmlPullParserException ex2) {
    			System.out.println("Error" + ex2.toString() );
    		}
    		catch (Exception ex){
    			String error = ex.toString();
    			System.out.println("Error: "+ error);
    		}
    		
    		
    	}
    }

Here's my PHP Server Code. THere is communication the function writegpsdata works but the client errors on the server response.

    <?php
    // submitGPS is a soap server which writes GPS data to a mysql database.
    // requires the writegpsdata.inc file which contains the required function
    // uses submitGPS.wsdl file for defining soap service
    
    require_once ("writegpsdata.axios.inc.php");
    //require_once ("lib/nusoap.php");
    
    ini_set("soap.wsdl_cache_enabled","0"); //disabling WSDL caching
    $server = new SoapServer("http://secure.g4apps.com/submitAxios.wsdl");
    $server->AddFunction("writegpsdata");
    $server->handle();
    ?>

For good measure, here's the wsdl file.

    <?xml version="1.0"?>
    <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://secure.g4apps.com/submitAxios/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="submitAxios" targetNamespace="http://secure.g4apps.com/submitAxios/">
      <wsdl:message name="writegpsdataRequest">
        <wsdl:part name="writegpsdataRequest" type="xsd:string"/>
      </wsdl:message>
      <wsdl:message name="writegpsdataResponse">
        <wsdl:part name="writegpsdataResponse" type="xsd:string"/>
      </wsdl:message>
      <wsdl:portType name="submitAxios">
        <wsdl:operation name="writegpsdata">
          <wsdl:input message="tns:writegpsdataRequest"/>
          <wsdl:output message="tns:writegpsdataResponse"/>
        </wsdl:operation>
          </wsdl:portType>
      <wsdl:binding name="submitAxiosSOAP" type="tns:submitAxios">
        <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="writegpsdata">
          <soap:operation soapAction="http://secure.g4apps.com/submitAxios/writegpsdata"/>
          <wsdl:input>
            <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://secure.g4apps.com/submitAxios/" use="encoded"/>
          </wsdl:input>
          <wsdl:output>
            <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://secure.g4apps.com/submitAxios/" use="encoded"/>
          </wsdl:output>
        </wsdl:operation>
      </wsdl:binding>
      <wsdl:service name="submitAxios">
        <wsdl:port binding="tns:submitAxiosSOAP" name="submitAxiosSOAP">
          <soap:address location="http://secure.g4apps.com/submitAxios.php"/>
        </wsdl:port>
      </wsdl:service>
    </wsdl:definitions>

