ksoap2 lib का उपयोग करके एंड्रॉइड से एक .net SOAP1.1 वेब सेवा को कॉल करना मैंने कस्टम ऑब्जेक्ट को कास्टिंग प्रतिक्रिया की समस्या से मुलाकात की। उदाहरण के लिए httpTransport.call (साबुनएक्शन, साबुन लिफाफा) के बाद नीचे दिया गया कोड सही कहा जाता है; और अंदर डेटा है। लेकिन मैं इसे विशिष्ट ऑब्जेक्ट में नहीं डाल सकता, न तो सोप ऑब्जेक्ट या वेक्टर को जैसा कि मैंने कई उदाहरणों में देखा है, मुझे CastException या सरल कुछ नहीं मिलता है। अगर कोई जानता है कि इससे कैसे निपटें, तो कृपया मदद करें।ksoap2 कास्टिंग getResponse()
public StatusSetting[] GetAllStatuses(String installation){
StatusSetting[] statuses = null;
String methodName = "GetAllStatuses";
String soapAction = NAMESPACE + "/" + methodName;
SoapObject request = new SoapObject(NAMESPACE, methodName);
request.addProperty("installation", installation);
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet = true;
soapEnvelope.setOutputSoapObject(request);
AndroidHttpTransport httpTransport = new AndroidHttpTransport(SERVICE_URL);
try {
httpTransport.call(soapAction, soapEnvelope);
statuses = (StatusSetting[])soapEnvelope.getResponse();
} catch (Exception e) {
e.printStackTrace();
}
return statuses;
}
धन्यवाद, यह काम करता है, मैं SoapObject में डेटा है। क्या आप कृपया सोप ऑब्जेक्ट को पार्स करने का निर्देश दे सकते हैं। मेरा मतलब किसी भी तरह से संपत्तियों को पढ़ना है और मुझे आवश्यक डेटा की तलाश है। मैंने डीबग मोड में परिणाम RequestSOAP.properties (यह जेसन डेटा की तरह मिलता है) प्राप्त करने का प्रयास किया लेकिन गुण कोड में उपयोग करने के लिए खुली विधि नहीं है। – Maxim
मुझे साबुन ऑब्जेक्ट को पार्स करने के दो तरीकों के बारे में पता है। 1. 'org.ksoap2.serialization.Marshal' इंटरफेस को लागू करें और संबंधित SOAP टैग के लिए पंजीकरण करें। 2. एक और तरीका है - टीएच संबंधित मान प्राप्त करने के लिए 'getProperty() 'और' getAttribute() 'SoapObject के तरीकों का उपयोग करना। एचटीएच। –
यह भी देखें। http://www.drdobbs.com/article/printableArticle.jhtml;jsessionid=OKCYS4LV2OQDPQE1GHPCKHWATMY32JVN?articleId=208800166&dept_url=/mobility/ –