2011-06-02 77 views
0

無法使用KSOAP以服務傳遞一個整數值到達的服務請求的服務request.The值變爲零 這裏是我的代碼安卓:如何通過一個整數值的Android

私有靜態最後絃樂METHOD_NAME =「GetPrivileges」;
private static final String NAMESPACE =「http://AuthorizationManagement.ServiceContracts/2007/01/」;
private static final String URL =「http://192.168.5.219/NTLS_Authorization/AuthorisationManager.asmx」;
final String SOAP_ACTION =「http://AuthorizationManagement.ServiceContracts/2007/01/GetPrivileges」; (){
public void call(){ 嘗試SoapObject request = new SoapObject(NAMESPACE,METHOD_NAME);

 PropertyInfo pi=new PropertyInfo(); 
     pi.type=PropertyInfo.INTEGER_CLASS; 
     pi.setName("RoleID"); 
     pi.setValue(3); 
     pi.setNamespace(NAMESPACE); 
     request.addProperty(pi); 

     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     envelope.dotNet = true; 
     envelope.setOutputSoapObject(request); 


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

     Object result = envelope.getResponse(); 

     String resultData = result.toString(); 
+0

是金達是right.please張貼錯誤,你在這一點上得到。 – 2011-06-02 06:14:15

回答

0

簡單,你可以添加此

requestObject.addProperty("RoleID",3); 

可能嘗試這種代碼// 注意不要直接把數字(3回合的情況下),而不是把它作爲參數...

final SoapObject requestObject = new SoapObject(Constants.NAMESPACE,METHOD_NAME);   
      SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
      envelope.dotNet = false; 
      requestObject.addProperty("RoleID",number); 

      envelope.setOutputSoapObject(requestObject); 
      AndroidHttpTransport androidHttpTransport =new AndroidHttpTransport(Constants.URL); 
      try 
      { 
       androidHttpTransport.call(Constants.SOAP_ACTION+METHOD_NAME, envelope); 
       SoapObject response = (SoapObject)envelope.getResponse(); 
       Log.v("result",response.toString()); 
} 
catch(Exception e) 
     { 
      e.printStackTrace(); 

     } 
+0

試過這個,但仍然不能正常工作 – Rohini 2011-06-02 05:53:59

+1

所以錯誤沒有通過value.wat是錯誤顯示?你能發佈嗎? – Kakey 2011-06-02 06:11:18

+0

迴應說,角色ID不能爲NULL或Negative,它是服務 – Rohini 2011-06-02 07:00:05

1
public void call(int number) 
     { 
      try 
      { 
        String METHOD_NAME ="GetPrivileges"; 
        String NAMESPACE = "http://AuthorizationManagement.ServiceContracts/2007/01/"; 
        String URL ="http://192.168.5.219/NTLS_Authorization/AuthorisationManager.asmx"; 
       final String SOAP_ACTION ="http://AuthorizationManagement.ServiceContracts/2007/01/GetPrivileges"; 
       SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
       request.addProperty("RoleID",number); 

       SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
       envelope.dotNet = true; 
       envelope.setOutputSoapObject(request); 


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

       Object result = envelope.getResponse(); 

       String resultData = result.toString(); 
       Log.v("Result==>",resultData); 
      } 
      catch(Exception e) 
      { 
       e.printStackTrace();   
       } 
     } 
+0

得到消息「RoleID_CanNot_Be_Null_Or_Negative」即使這個代碼不起作用。我們是否需要在Android清單文件中添加除<使用權限android:name =「android.permission.INTERNET」>' – Rohini 2011-06-02 09:28:41

+0

nope以外的任何權限。只有你可以通過協調服務器端找到答案。 – Kakey 2011-06-02 09:31:20

+0

我認爲你必須將一個對象傳遞給該方法,而不是一個值。我試着以這種方式給出答案。 – Kakey 2011-06-02 09:35:53