2011-09-07 26 views
0

我正在嘗試使用SOAP 2.4來驗證使用Android的用戶名和密碼。我從服務器得到響應,我可以確認這是MySQL服務器確認我的應用程序提出了請求。但是,正如你在下面看到的,我使用addProperty()方法傳遞了兩個參數。 MySQL服務器看到請求,但值爲空。因此,我得到一個迴應,說「無效的用戶名或密碼」,但是我已經硬編碼的用戶名和密碼在數據庫中是最初的。我是否正確地傳遞參數?SOAP驗證用戶不工作

else { 

     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); // set 
                     // up 
                     // request 

     request.addProperty("User", "raji"); // variable name, value. I got 
               // the variable name, from 
               // the wsdl file! 
     request.addProperty("Password", "PASSWORD"); 

     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
       SoapEnvelope.VER11); // put all required data into a soap 
             // envelope 
     envelope.setOutputSoapObject(request); // prepare request 
     AndroidHttpTransport httpTransport = new AndroidHttpTransport(URL); 
     httpTransport.debug = true; 
     httpTransport.call(SOAP_ACTION, envelope); // send request 

     SoapObject result = (SoapObject) envelope.getResponse();   System.out.println(result); 


    } 

這裏是SOAP XML文件

   <s:element name="ValidateUser"> 
       - <s:complexType> 
      - <s:sequence> 
       <s:element minOccurs="0" maxOccurs="1" name="User" type="s:string" /> 
       <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" /> 
        </s:sequence> 
       </s:complexType> 
        </s:element> 

回答

0

解決方案代碼是在這裏。我沒有添加.net代碼

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); // set 
     request.addProperty("User", sUserName); // variable name, value. I 
               // got 
     request.addProperty("Password", sPassword); 

     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
       SoapEnvelope.VER11); // put all required data into a soap 
     // envelope 
     envelope.dotNet = true; 
     envelope.setOutputSoapObject(request); // prepare request 
     AndroidHttpTransport httpTransport = new AndroidHttpTransport(URL); 
     httpTransport.debug = true; 
     httpTransport.call(SOAP_ACTION, envelope); // send request 

     System.out.println("HERE IS THE ENVELOPE " 
       + envelope.getInfo("User", "Password")); 
     SoapObject result = (SoapObject) envelope.getResponse();