2014-02-17 65 views
0

我在查找有關如何在Android中調用標準SOAP Web服務的好信息時遇到了很多問題。任何幫助如何使用Android SOAP Web服務調用

+0

您遇到了什麼麻煩? – user3317558

+0

我沒有任何麻煩,我不知道如何使用SOAP? – venu

+0

你有[google搜索](https://www.google.co.in/?gfe_rd=cr&ei=kusBU86GBOrV8gfQs4GQDQ#q=Android%2BSoap+Example)? – user3317558

回答

0

使用以下代碼從Android調用SOAP Web服務使用NTLM AUTHENTICATION

SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    soapEnvelope.implicitTypes = true; 
    soapEnvelope.dotNet = true; 
    SoapObject soapReq = new SoapObject("urn:microsoft-dynamics-schemas/page/customercard","Read"); 

    soapEnvelope.setOutputSoapObject(soapReq); 

    propinfo = new PropertyInfo(); 
    propinfo.setName("No"); 
    propinfo.setValue(no); 
    propinfo.setType(no.getClass()); 
    propinfo.setNamespace("urn:microsoft-dynamics-schemas/page/customercard"); 
    soapReq.addProperty(propinfo); 


    NtlmTransport ntlm = new NtlmTransport(url, userid, password, domainname,systemname); 
    try{ 
     if (headers!=null){ 
      ntlm.call("urn:microsoft-dynamics-schemas/page/customercard/Read", soapEnvelope,headers); 
     }else{ 
      ntlm.call("urn:microsoft-dynamics-schemas/page/customercard/Read", soapEnvelope); 
     } 
     Object retObj = soapEnvelope.bodyIn; 
     if (retObj instanceof SoapFault){ 
      SoapFault fault = (SoapFault)retObj; 
      Exception ex = new Exception(fault.faultstring); 
      if (eventHandler != null) 
       eventHandler.Wsdl2CodeFinishedWithException(ex); 
     }else{ 
      SoapObject result=(SoapObject)retObj; 
      if (result.getPropertyCount() > 0){ 
       System.out.println("RESULT 2"+result); 
       Object obj = result.getProperty(0); 
       SoapObject j = (SoapObject)obj; 
      } 
0

首先,您應該通過AsyncTask調用Web服務。 您必須擁有一個bean類並在清單文件中添加Internet權限。 查詢this Example供您參考