2013-10-30 32 views
0

我创建的Android应用程序可以使用SOAP客户端(WSDL)连接到Web服务。现在我想知道是否可以使用PropertyInfo创建请求并为其设置多个名称和值。我有这个代码更多关于我的问题的信息。是否可以在android中为一个PropertyInfo设置多个名称和值?

 String METHOD_NAME = "callLog"; 
     String NAMESPACE = "http://sasd.logpos.com/appservs/app/customize/qwe/ecq.wsdl/"; 
     String URL = "http://sasd.logpos.com/appservs/app/customize/qwe/ecqsoap.php"; 
     String SOAP_ACTION = "http://sasd.logpos.com/appservs/app/customize/qwe/ecq.wsdl/callLog"; 
     Log.i("myEmpId", myEmpId); 
     Log.i("myPassword", myPassword); 
     //create request 
     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
     //create param 
     PropertyInfo paramsEmpId = new PropertyInfo(); 
     paramsEmpId.setName("authuserid"); 
     paramsEmpId.setValue(myEmpId); 
     paramsEmpId.setType(String.class); 


     paramsPass.setName("authpassword"); 
     paramsPass.setValue(myPassword); 
     paramsPass.setType(String.class); 
     request.addProperty(paramsEmpId, "LOGON"); 

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

     HttpTransportSE ht = new HttpTransportSE(URL); 
     try { 
      ht.call(SOAP_ACTION, envelope); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (XmlPullParserException e) { 
      e.printStackTrace(); 
     } 
     String response = null; 
     try { 
      response = envelope.getResponse().toString(); 
     } catch (SoapFault e) { 
      e.printStackTrace(); 
     } 

回答

0

是的,你可以添加尽可能多的PropertyInfo

我发现了更多的一个问题的URL您正在使用它应该永远是一个WSDL URL和检查Namespace为好。

//create param 
     PropertyInfo paramsEmpId = new PropertyInfo(); 
     paramsEmpId.setName("authuserid"); 
     paramsEmpId.setValue(myEmpId); 
     paramsEmpId.setType(String.class); 

     PropertyInfo paramsPass= new PropertyInfo();// Create a new propertyInfo 
     paramsPass.setName("authpassword"); 
     paramsPass.setValue(myPassword); 
     paramsPass.setType(String.class); 
     request.addProperty(paramsEmpId);// Changed here 
     request.addProperty(paramsPass); // Changed here 
+0

我应该怎么知道什么是我的网址,什么是我的名字空间? – NewDroidDev

+0

@NewDroidDev你能分享你的工作Wsdl网址吗? –

+0

@NewDroidDev这不是wsdl网址吗?例如它应该像http://www.webservicex.net/WeatherForecast.asmx –

0
 yes this possible and hope this is going to help you 

     please check the lines 


paramsPassInfo paramsPass= new paramsPassInfo(); 

     paramsPass.setName("authpassword"); 
     paramsPass.setValue(myPassword); 
     paramsPass.setType(String.class); 

    request.addProperty(paramsPass, "//name"); 
相关问题