2012-01-07 17 views
6

एंड्रॉइड ऐप्स विकास के लिए बहुत नया है। मेरे नए एंड्रॉइड ऐप में मैं webservice से कुछ डेटा दिखाना चाहता हूं। इसका मतलब है कि मेरे पास SOAP message है, मुझे SOAP प्रतिक्रिया से डेटा को पार्स करने की आवश्यकता है। आईफोन ऐप में मुझे एसओएपी संदेश प्रतिक्रिया का विश्लेषण करने के लिए बहुत अच्छा पता था, लेकिन एंड्रॉइड में मुझे नहीं पता कि यह कैसे करें? मैंने Google में बहुत कुछ खोजा और कुछ विचार प्राप्त किए। लेकिन, इस पर बहुत भ्रमित हूँ। क्या कोई भी Android में SAXParser में प्रतिक्रिया को एसओएपी भेजने के अनुरोध/प्रतिक्रिया और पार्स (XML format) को समझने का सबसे आसान तरीका सुझा सकता है? मैंने अपनी परियोजना में ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar स्थापित किया है। यहां मुझे कुछ नमूना कोड मिला, मैं यहां पोस्ट करता हूं,एंड्रॉइड में एक्सएमएल प्रारूप में एसओएपी अनुरोध और पार्स एसओएपी प्रतिक्रिया कैसे भेजें?

import java.io.*; 
import org.ksoap2.SoapEnvelope; 
import org.kxml2.io.KXmlParser; 
import org.xmlpull.v1.XmlPullParserException; 


public class ParsingSteps 
{ 
    public static void main(String[] args) 
    { 
     try{ 
      // String msg="<hello>World!</hello>"; 
       String msg = "<SOAP-ENV:Envelope " + "xmlns:SOAP-ENV=\"http:// 
www.w3.org/2001/12/soap-envelope\" " + "xmlns:xsi=\"http://www.w3.org/ 
2001/XMLSchema-instance <http://www.w3.org/%0A2001/XMLSchema-instance>\"" 
+"xmlns:xsd=\"http://www.w3.org/2001/ 
XMLSchema\"& gt;" + 
        "<SOAP-ENV:Body>" + 
        "<result>" + 
        "<message xsi:type=\"xsd:string\">Hello World</message>" + 
        "</result>" + 
        "</SOAP-ENV:Body>" + 
        "</SOAP-ENV:Envelope>"; 

     //  byte[] in= msg.getBytes(); 

       KXmlParser parser=new KXmlParser(); 
       parser.setInput(new StringReader(msg)); 
      SoapEnvelope soapenvelope= new SoapEnvelope 
(SoapEnvelope.VER12); 
       //soapenvelope.parse(parser); 
       soapenvelope.parseBody(parser); 

         } 
       catch (IOException e) { 
              System.out.println("Error reading URI: " + e.getMessage()); 
     } catch (XmlPullParserException e) { 
             System.out.println("Error in parsing: " + e.getMessage()); 
       } 
     //  String result=parser.getName(); 
       //System.out.println(result); 
   } 
} 

क्या यह सही कोड है। कृपया मेरे प्रश्न पर कोई सुझाव दें। कृपया इस पर मेरी सहायता करें। अग्रिम में धन्यवाद।

उत्तर

5


Google Ksoap2 ट्यूटोरियल के लिए Google आपको बहुत कुछ मिलेगा। वेब सेवा के लिए अनुरोध भेजने के लिए नमूना कोड यहां दिया गया है।

public class WebServicePoc extends Activity{ 
private static final String SOAP_ACTION = "http://tempuri.org/Arnoid"; 
private static final String METHOD_NAME = "Arnoid"; 
private static final String NAMESPACE = "http://tempuri.org/"; 
private static final String URL = "http://ipaddress:port/UserAuthenticationInterfacer.asmx"; 
EditText editText; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    HashMap<String, String> a=new HashMap<String, String>(); 
    try { 

     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
     request.addProperty("FOSID", "1994"); 
     request.addProperty("IMEINumber", ""); 
     request.addProperty("SIMCardNo", ""); 
     request.addProperty("ApplicationName", "App"); 
     request.addProperty("CurrentVersion", "1.0.0.0"); 
     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     envelope.dotNet=true; 
     envelope.setOutputSoapObject(request); 
     AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL); 
     androidHttpTransport.call(SOAP_ACTION, envelope); 
     SoapObject result = (SoapObject)envelope.getResponse(); 
     editText=(EditText)findViewById(R.id.text1); 
     editText.setText(result.toString()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

और के लिए एक्सएमएल पारसर्स के लिए एक्सएमएल कृपया जांच ट्यूटोरियल, उपयोग SAX केवल, STAX एंड्रॉयड में समर्थित नहीं है के रूप में। एक्सएमएल अनुरोध भेजने के लिए आप एक्सएमएल को स्ट्रिंग के रूप में भेज सकते हैं और फिर अलग तरफ डीकोड कर सकते हैं।

+0

आपकी प्रतिक्रिया के लिए बहुत बहुत धन्यवाद। मैं अपनी परियोजना में अपना विचार शामिल करूंगा। मैं भविष्य में आपकी मदद चाहता हूं। धन्यवाद। – Gopinath

+0

सही संदेश भेजने के लिए @ गोपीनाथ ने संपत्ति कैसे सेट की? – arniotaki

संबंधित मुद्दे