We are attempting to call API functions from a .NET 3.5 SP1 SOAP client (added a .NET 2 compatible web reference). We have run into some small glitches when attempting to invoke your API via SOAP. A cursory examintation (very cursory ;-) leads us to believe that some of the XML returned in the SOAP response body is very slightly malformed and as a result can not be deserialized into usable objects on the client end. Initially we thought it might be due to the libxml2/nusoap issue but it seems like we are using a "safe" version of said libs...
On the server end:
PHP version: 5.2.6
NuSOAP version: 0.7.3 (1)
httpd version: Apache/2.2.8 (EL)
libxml2 version: 2.6.26
On the client end:
We get a deserialization error stating that there is an error in the returned XML response....
System.InvalidOperationException = {"There is an error in XML document (2, 17)."}
Inner exception:
Message = "'xsi' is an undeclared namespace. Line 2, position 17."
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.Throw(String res, String arg, Int32 lineNo, Int32 linePos)
at System.Xml.XmlTextReaderImpl.LookupNamespace(NodeData node)
at System.Xml.XmlTextReaderImpl.AttributeNamespaceLookup()
at System.Xml.XmlTextReaderImpl.ParseAttributes()
at System.Xml.XmlTextReaderImpl.ParseElement()
at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlTextReader.Read()
at System.Xml.XmlReader.MoveToContent()
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderdepartmentLi
st.Read3_departmentList()
Here is a (sanitized) dump of the entire SOAP conversation for a call to the getDepartmentList function (representative of results we get with calls to other functions)...
POST /api-root-dir/index.php HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.3053)
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://sample-kayako-site.com/api-root-dir/index.php#getDepartmentList"
Host: sample-kayako-site.com
Content-Length: 667
Expect: 100-continue
Connection: Keep-Alive
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://sample-kayako-site.com/api-root-dir/index.php" xmlns:types="http://sample-kayako-site.com/api-root-dir/index.php/encodedTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><tns:getDepartmentList><user xsi:type="xsd:string">api-user</user><password xsi:type="xsd:string">********************</password></tns:getDepartmentList></soap:Body></soap:Envelope>HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Date: Wed, 24 Dec 2008 19:06:51 GMT
Server: Apache/2.2.8 (EL)
X-Powered-By: PHP/5.2.6
X-SOAP-Server: NuSOAP/0.7.3 (1)
Content-Length: 8475
Connection: close
Content-Type: text/xml; charset=ISO-8859-1
<?xml version="1.0" encoding="ISO-8859-1"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:getDepartmentListResponse xmlns:ns1="http://sample-kayako-site.com/api-root-dir/index.php"><departmentList xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType=":[33]"><item xsi:type="xsd:"><id xsi:type="xsd:int">1</id><title xsi:type="xsd:string">DEPT 1</title><ispublic xsi:type="xsd:boolean">1</ispublic><isdefault xsi:type="xsd:boolean">1</isdefault><order xsi:type="xsd:int">1</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">9</id><title xsi:type="xsd:string">DEPT 2</title><ispublic xsi:type="xsd:boolean">1</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">2</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">11</id><title xsi:type="xsd:string">DEPT 3</title><ispublic xsi:type="xsd:boolean">1</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">3</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">20</id><title xsi:type="xsd:string">DEPT 4</title><ispublic xsi:type="xsd:boolean">1</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">4</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">24</id><title xsi:type="xsd:string">DEPT 5</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">5</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">12</id><title xsi:type="xsd:string">DEPT 6</title><ispublic xsi:type="xsd:boolean">1</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">5</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">3</id><title xsi:type="xsd:string">DEPT 7</title><ispublic xsi:type="xsd:boolean">1</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">6</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">21</id><title xsi:type="xsd:string">DEPT 8</title><ispublic xsi:type="xsd:boolean">1</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">6</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">7</id><title xsi:type="xsd:string">DEPT 9</title><ispublic xsi:type="xsd:boolean">1</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">6</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">13</id><title xsi:type="xsd:string">DEPT 10</title><ispublic xsi:type="xsd:boolean">1</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">7</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">15</id><title xsi:type="xsd:string">DEPT 11</title><ispublic xsi:type="xsd:boolean">1</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">7</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">17</id><title xsi:type="xsd:string">DEPT 12</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">9</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">18</id><title xsi:type="xsd:string">DEPT 13</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">10</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">19</id><title xsi:type="xsd:string">DEPT 14</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">10</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">23</id><title xsi:type="xsd:string">DEPT 15</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">14</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">25</id><title xsi:type="xsd:string">DEPT 16</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">16</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">26</id><title xsi:type="xsd:string">DEPT 17</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">17</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">27</id><title xsi:type="xsd:string">DEPT 18</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">18</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">28</id><title xsi:type="xsd:string">DEPT 19</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">19</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">29</id><title xsi:type="xsd:string">DEPT 20</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">20</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">30</id><title xsi:type="xsd:string">DEPT 21</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">21</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">31</id><title xsi:type="xsd:string">DEPT 22</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">22</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">32</id><title xsi:type="xsd:string">DEPT 23</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">23</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">33</id><title xsi:type="xsd:string">DEPT 24</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">24</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">34</id><title xsi:type="xsd:string">DEPT 25</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">25</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">35</id><title xsi:type="xsd:string">DEPT 26</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">26</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">37</id><title xsi:type="xsd:string">DEPT 27</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">28</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">38</id><title xsi:type="xsd:string">DEPT 28</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">29</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">39</id><title xsi:type="xsd:string">DEPT 29</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">30</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">40</id><title xsi:type="xsd:string">DEPT 30</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">31</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">41</id><title xsi:type="xsd:string">DEPT 31</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">32</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">42</id><title xsi:type="xsd:string">DEPT 32</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">33</order></item><item xsi:type="xsd:"><id xsi:type="xsd:int">43</id><title xsi:type="xsd:string">DEPT 33</title><ispublic xsi:type="xsd:boolean">0</ispublic><isdefault xsi:type="xsd:boolean">0</isdefault><order xsi:type="xsd:int">34</order></item></departmentList></ns1:getDepartmentListResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
Has anyone out there experienced a similar issue?
Thanks
Peter
Attached File(s)
-
soap_response_sanitized.txt (9.2K)
Number of downloads: 6
Sign In »
Register Now!
Help

Back to top








