至于主题。
我运行一个 grails Web 应用程序,通过 Axis2 插件将服务公开为 Web 服务(然后它使用 Apache Axis2)。
一切都很好,除了运行 ksoap2 的 Android 在处理 http 响应时失败。
我得到的执行消息是:
org.xmlpull.v1.XmlPullParserException:意外令牌(位置:TEXT --MIMEBoundaryur ...@4:13 in java.io.InputStreamReader@40fdd958)
现在,我进行了一些调查,发现我的网络应用程序在响应一个肥皂编码的网络服务调用时,将数据返回为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 标头。
现在,问题是......如何解决这个问题?