2012-07-02 2 views
0

Android 2.1 API를 사용하고 있습니다. 웹에서 ksoap 프로토콜을 통해 데이터를 다운로드합니다. 결과는 org.ksoap2.serialization.SoapPrimitive 예외이며 이유를 이해할 수 없습니다.두 번째 응답에서 org.ksoap2.serialization.SoapPrimitive 오류가 발생했습니다.

디버깅을 사용하면 for이 첫 번째 라운드를 올바르게 실행하지만 두 번째로 re = (SoapObject) ((SoapObject) envelope.getResponse()). getProperty (s) 교육을 중단하고 오류 org.ksoap2.serialization.SoapPrimitive을보고합니다. 여기

코드입니다 :

다음 줄에 두 번째 속성은 당신이 그것을 주조 종류이기 때문에 런타임에 위반되는 프리미티브 SoapObject하지만 비누 아닌 같은
request = new SoapObject(NAMESPACE, METHOD_NAME); 
request.addProperty("dev", false); 
request.addProperty("Cap", input_cap.getText().toString()); 

envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
envelope.dotNet = true; 
envelope.setOutputSoapObject(request); 
envelope.addMapping(NAMESPACE,Offerta.Offerta_CLASS.getSimpleName(),Offerta.Offerta_CLASS); 

androidHttpTransport = new HttpTransportSE(URL); 
androidHttpTransport.call(SOAP_ACTION, envelope); 

int nOff = ((SoapObject) envelope.getResponse()).getPropertyCount(); 
SoapObject re; 

for (int i = 0; i < nOff; i++) { 
    re = (SoapObject) ((SoapObject) envelope.getResponse()).getProperty(i); 
    img.setImageBitmap(getBitmap(Integer.parseInt(re.getProperty(0).toString()))); 
    titolo.setText(re.getProperty(1).toString()); 
    descrizioneTitolo.setText(re.getProperty(3).toString()); 
    provincia.setText(getProvincia(Integer.parseInt(re.getProperty(13).toString()))); 
    sintesi.setText(re.getProperty(2).toString()); 
    contenitore_paese.addView(view); 
} 

답변

0

오류 메시지가 들린다 .

re = (SoapObject) ((SoapObject) envelope.getResponse()).getProperty(i); 
+0

어떻게 가능합니까? 웹에서 같은 객체를 반환합니다 ... 그리고 다른 클래스에서 같은 메커니즘을 사용하고 작동합니다 ... 그러나 많은 감사합니다! 다시 확인해보십시오 : P – Andrea

+0

문제를 해결했습니다 : D 일반적인 개체를 사용하지 않고 대답을 주셔서 감사합니다! :디 – Andrea

0

SoapPrimitive 대신 SoapObject로 전송하십시오. 또한 이유를 모르지만 코드를 보면 논리적 일 수 있습니다.

SoapPrimitive re = (SoapPrimitive) envelope.getResponse().getProperty(i) ; 
관련 문제