1

次のようなコンテンツを持つPHP Webサービスからのオブジェクトの配列があります。

anyType[
objectname1{element1=1234567890; element2=test; element3=1110; element3=72.824043; },
objectname1{element1=11090999; element2=test; element3=2292; element3=72.824043; }]

Android アプリケーションで Web サービス データを取得するために ksoap2 を使用しています。

この質問のchadi cortbaouiのソリューションを使用してみましたが、エラーが発生しています

java.lang.ClassCastException: java.util.Vector を org.ksoap2.serialization.SoapObject にキャストできません

SoapObject response1 = (SoapObject) response.getProperty(0);次のコードの行

envelope.encodingStyle = "UTF-8";
httpTransport.debug = true;
httpTransport.call(SOAP_ACTION, envelope);
response =  (SoapObject) envelope.bodyIn;
SoapObject response1 = (SoapObject) response.getProperty(0);

SoapPrimitiveの代わりに を使用してみましたが、 の代わりに を使用SoapObjectしてみましたが、同じエラーがスローされて動作しません。envelope.getResponse()envelope.bodyIn

4

1 に答える 1

0

この質問の助けを借りて次のコードを使用して問題を解決しました

httpTransport.call(SOAP_ACTION, envelope);
response =  (SoapObject) envelope.bodyIn;
Vector<?> responseVector = (Vector<?>) response.getProperty(0);//store the response object values in a Vector(It solved the vector error which i was getting

int count=responseVector.size();

for (int i = 0; i <count; ++i) { //for loop for the array of the result    
SoapObject test=(SoapObject)responseVector.get(i);
String value1 = test.getProperty("value1").toString();//get Your values from the soap object
String value2 = test.getProperty("value2").toString();
String value3 = test.getProperty("value3").toString();
String value4 = test.getProperty("value4").toString();
  /*thats it now add the received values to your list using the for loop*/
}

ありがとう。

于 2013-09-25T12:52:40.190 に答える