Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调用Web服务时出错_Java_Android_Web Services_Ksoap2 - Fatal编程技术网

Java 调用Web服务时出错

Java 调用Web服务时出错,java,android,web-services,ksoap2,Java,Android,Web Services,Ksoap2,我已经完成了使用.NETC#开发的asmx,它运行良好 但是当我需要使用JavaAndroid调用时,我发现了一个错误 错误:java.lang.ClassCastException:org.ksoap2.serialization.SoapObject无法强制转换为org.ksoap2.serialization.SoapPrimitive 结果显示在我的asmx上: <customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan

我已经完成了使用.NETC#开发的asmx,它运行良好

但是当我需要使用JavaAndroid调用时,我发现了一个错误 错误:java.lang.ClassCastException:org.ksoap2.serialization.SoapObject无法强制转换为org.ksoap2.serialization.SoapPrimitive

结果显示在我的asmx上:

<customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<customerID>1</customerID>
<companyName>ABC</companyName>
<contactName>Jack</contactName>
<customerID>2</customerID>
<companyName>SS Company</companyName>
<contactName>Mary</contactName>
</customer>
如果我使用1)将userType更改为custID,则上述代码正常工作。这是你的错

测试

在这些情况下,ksoap2序列化程序无法将返回的字符串转换为有效的xml字符串

2) 试试这个:

aht.call(SOAP_ACTION, soapEnvelope);
SoapObject resultString = (SoapObject) soapEnvelope.getResponse();
tv.setText(resultString.getPropertyAsString("customerID"));  

看起来你必须解析一个复杂的对象。您必须创建一个实现
kvmseriable
接口的
Customer
类。看看这个:

我已经解决了

           SoapObject resultString = (SoapObject) soapEnvelope.getResponse();           

            String addon = "";
            for(int i =0;i<resultString.getPropertyCount();i++)
            {                            
                SoapObject array2 = (SoapObject) resultString .getProperty(i);              
                addon = (addon + "ID = " + array2.getProperty(0).toString() + array2.getProperty(1).toString() + array2.getProperty(2).toString() + "\n");  
            }
            tv.setText(addon.toString());
SoapObject结果字符串=(SoapObject)soapEnvelope.getResponse();
字符串加载项=”;

对于(int i=0;i
NAMESPACE
METHOD\u NAME
SOAP\u ACTION
)的值是什么?在哪一行出现此错误?抱歉,实际值是custID,不是userType,我只是做了一些更改…请忽略它:)@breceivemail,我不确定,错误在异常catchok,我现在可以获取值。但结果是这样的。“anyType{customerID=Jack Sparrow;companyName=member;contactName=1234;}”如何筛选此项?我只想要数据,我不想要那些“customerID”、“companyName”、“anyType”。。。
           SoapObject resultString = (SoapObject) soapEnvelope.getResponse();           

            String addon = "";
            for(int i =0;i<resultString.getPropertyCount();i++)
            {                            
                SoapObject array2 = (SoapObject) resultString .getProperty(i);              
                addon = (addon + "ID = " + array2.getProperty(0).toString() + array2.getProperty(1).toString() + array2.getProperty(2).toString() + "\n");  
            }
            tv.setText(addon.toString());