android上的ksoap2无法解析MOTM编码的响应

时间:2012-02-13 04:50:20

标签: android web-services grails ksoap2 android-ksoap2

截至主题。

我运行一个grails web应用程序,通过Axis2插件将服务公开为Web服务(然后使用Apache Axis2)。

一切都很好,除了在处理http响应时运行ksoap2的Android失败。

我得到的执行信息是:

org.xmlpull.v1.XmlPullParserException:意外的令牌(位置:TEXT --MIMEBoundaryur ...在java.io.InputStreamReader@40fdd958中的@ 4:13)

现在,我调查了一下,发现我的网络应用程序在回复肥皂编码的网络服务调用时,将数据返回为multipart/related

更具体地说,它返回了一些东西

    HTTP/1.1 200 OK
    Server: Apache-Coyote/1.1
    Content-Type: multipart/related;
                  boundary=MIMEBoundaryurn_uuid_AC5A47086C51CDF4581329104304545; type="text/xml";
                    start="<0.urn:uuid:AC5A47086C51CDF4581329104304546@apache.org>"
    Date: Mon, 13 Feb 2012 03:38:24 GMT
    Connection: close

    --MIMEBoundaryurn_uuid_AC5A47086C51CDF4581329104304545
    Content-Type: text/xml; charset=utf-8
    Content-Transfer-Encoding: 8bit
    Content-ID: <0.urn:uuid:AC5A47086C51CDF4581329104304546@apache.org>

    <?xml version='1.0' encoding='utf-8'?>
    <soapenv:Envelope 
            xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
            <soapenv:Body>
            <ns:sayHelloResponse 
                    xmlns:ns="http://api.account.mycompany.com">
                    <ns:return>Just a test... Hello John Doe!
            </ns:return>
            </ns:sayHelloResponse>
            </soapenv:Body>
    </soapenv:Envelope>
    --MIMEBoundaryurn_uuid_AC5A47086C51CDF4581329104304545--

因此,显然,XmlPullParser在到达时失败:

    --MIMEBoundaryurn_uuid_AC5A47086C51CDF4581329104304545

它可能期望XML的开始,但得到了MOTM标题。

现在,问题是......如何解决这个问题?

0 个答案:

没有答案