Android SOAP响应中断

Android SOAP响应中断,android,web-services,soap,ksoap2,Android,Web Services,Soap,Ksoap2,我最近开始在使用Android处理kSOAP2时遇到一些问题,特别是在收到响应时。以下是使用多个AVD和一个物理设备测试的问题: 我开始向在本地计算机上运行的web服务发送请求,收到响应时通常会出现以下异常 01-15 17:15:43.819: E/SOAP(2904): java.lang.IllegalStateException: getInputStream() is not available. Is this a reentrant call? 最让我烦恼的是,起初它总是会发生,

我最近开始在使用Android处理kSOAP2时遇到一些问题,特别是在收到响应时。以下是使用多个AVD和一个物理设备测试的问题:

我开始向在本地计算机上运行的web服务发送请求,收到响应时通常会出现以下异常

01-15 17:15:43.819: E/SOAP(2904): java.lang.IllegalStateException: getInputStream() is not available. Is this a reentrant call?
最让我烦恼的是,起初它总是会发生,但现在只有当我通过我的物理设备发送请求时才会发生,现在AVD得到了正确的响应

此外,在开始时,我决定检查通信量,检查是否接收到格式正确的响应,但我看到SOAP响应只是在节点内的某个点被切断

我在库中找到了引入此异常的提交,正如您所看到的,它是在响应为null或有错误时启动的,我猜:

有什么想法吗

编辑:我将代码附加到拨打电话的位置:

ListRQ rq = new ListRQ(c, l, s, "");

    PropertyInfo pi = new PropertyInfo();
    pi.setName("request");
    pi.setValue(rq);
    pi.setType(rq.getClass());
    request.addProperty(pi);

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.dotNet = false;
    envelope.setOutputSoapObject(request);

    envelope.addMapping(Params.NAMESPACE, "ListRQ", ListRQ.class);
    MarshalDouble md = new MarshalDouble();
    md.register(envelope);

    HttpTransportSE htse = new HttpTransportSE(Params.URL);
    htse.debug = true;

    try {
        htse.call(Params.GetList.SOAP_ACTION, envelope);
        SoapObject response = (SoapObject) envelope.getResponse();
        Log.d("SOAP", response.toString());

    }
    catch(Exception e) {
        Log.e("SOAP", e.toString());
    }

我不确定您是否应该多次调用getInputStream我们需要查看您的代码以提供更多建议,但正如@njzk2所说,您可能在同一个连接上调用getInputStream两次。可能来自不同的线程,也可能不是。