使用KSOAP2连接到Web服务 – 获取XmlPullParserException

我看到其他一些用户遇到同样的问题,但老实说答案并没有帮助我。

我有一个连接到PHP Web服务(使用NuSOAP)的android客户端,本地一切正常。 当我部署我的web服务并更新客户端上的变量时,我收到以下错误:

org.xmlpull.v1.xmlpullparserexception:意外类型(位置:END_DOCUMENT null @ 1:0 in java.io.InputStreamReader@44f11f30)

这是随机发生的 – 例如,对于登录,如果第一次尝试是“错误的密码”(成功连接到Web服务),第二次尝试我得到该错误。 如果它被接受,我得到了一个强制关闭应用程序(我开始另一个活动)我想这是因为这个问题。

我不知道问题是什么,因为我没有手动处理任何XML文件而且我的WDSL很好,你可以在这里看到

我的连接字符串如下:

private static final String URL = "http://apkitchen.voku-online.de:8080/webs.php"; private static final String NAMESPACE = "urn:hellowsdl"; final String SOAP_ACTION = "urn:hellowsdl#auth"; final String METHOD_NAME = "auth"; SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

我的完整连接function是:

 public Object soap(String METHOD_NAME, String SOAP_ACTION, String NAMESPACE, String URL) throws IOException, XmlPullParserException { SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); request.addProperty("username", "Maxxd"); request.addProperty("password", "xxxx"); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.setOutputSoapObject(request); HttpTransportSE httpTransport = new HttpTransportSE(URL); httpTransport.call(SOAP_ACTION, envelope); Object result = envelope.getResponse(); return result; } 

老实说,我不知道为什么会这样……有什么帮助吗?

发现问题(但不是解决方案……)

我转储了响应xml文件,看起来像是商城形成的:

    0    <!.................. 

信封本身没关系,但没有结束评论标签……我该如何解决这个问题?

看起来这是关于api级别<9的KSOAP2 android实现的问题。

它已经解决了

 System.setProperty("http.keepAlive", "false"); 

我希望有人希望有人,因为我看到了几十个有同样问题的人。

我不确定它是否对你有帮助,但我有同样的例外。 当我将信封版本从11更改为10时,它神奇地消失了:o。 也许你可能想尝试一下。

 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);