2015-01-30 3 views
0
SoapObject request = new SoapObject(NAMESPACE, "api_vps_get_service"); 
// Property which holds input parameters 
PropertyInfo unamePI = new PropertyInfo(); 

// Set token 
unamePI.setName("token"); 
// Set Value 
unamePI.setValue(token); 
// Set dataType 
unamePI.setType(String.class); 
// Add the property to request object 
request.addProperty(unamePI); 

// Create envelope 
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
     SoapEnvelope.VER11); 
envelope.dotNet=true; 
envelope.setOutputSoapObject(request); 
// Set output SOAP object 
envelope.setOutputSoapObject(request); 
// Create HTTP call object 
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 

try { 

    // Invoke web service 
    androidHttpTransport.call(SOAP_ACTION+"api_vps_get_service", envelope); 
    // Get the response 

    SoapObject response=(SoapObject)envelope.bodyIn; 


    String reponses = response.toString(); 
    Log.i("reponse", String.valueOf(reponses)); 

} catch (Exception e) { 
    //Assign Error Status true in static variable 'errored' 
    Home.errored = true; 
    e.printStackTrace(); 
} 

я получаю эту ошибку java.lang.ClassCastException: org.ksoap2.SoapFault не может быть приведен к орг. ksoap2.serialization.SoapObject я попробовал SoapPrimitive response = (SoapPrimitive) envelope.getResponse(); а также Object response = (Object) envelope.getResponse(); но ни один успех никому не скажет мне, почему я получаю ошибку?java.lang.ClassCastException: org.ksoap2.SoapFault не может быть приведен к org.ksoap2.serialization.SoapObject

ответ

1

Сервер вернул ошибку. Таким образом, нет SoapObject или SoapPrimitive. Вы должны проверить в первую очередь для SoapFoult так:

if (envelope.bodyIn instanceof SoapFault) 
{ 
    final SoapFault sf = (SoapFault) envelope.bodyIn; 
    ... // Stuff 
} 

это описано здесь: https://code.google.com/p/ksoap2-android/issues/detail?id=177

+0

SoapFault - faultcode: 'SOAP-ENV: Сервер' faultstring: 'Невозможно сериализовать результат' faultactor: '' detail: [email protected] ​​ Теперь он дает это, что это значит? – hena12

+0

проблема решена, есть проблема в имени метода – hena12

+0

В любом случае, не очень хорошая идея выдавать результат без проверки типа объекта. Сервер иногда отправляет то, что мы хотим получить от него. – mmprog