Andriod for webService

本文介绍如何使用ksoap2-android库调用WebService并传递复杂对象。通过具体示例展示了如何设置请求、处理响应及自定义User类实现序列化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前一直都用HttpURLConnection 或 HttpClient 向服务器发布和接收数据。

这次因为项目需求使用 webService 来与服务端交互。

这里主要介绍webService来传递负责对象,传递简单数据可参考其它文章。

需要下载一个 ksoap2-android-assembly-3.0.0-jar-with-dependencies.jar 的包.

          

   final static String SERVICE_NS = "http://service.web.rt.org/";
   final static String SERVICE_URL = "http://192.168.2.116:8080/webservice/UserService";
       //调用的方法
       String methodName = "save";此方法为你要调用服务器端的方法名称
       //创建httpTransportSE传输对象
       HttpTransportSE ht = new HttpTransportSE(SERVICE_URL);
       ht.debug = true;
       //使用soap1.1协议创建Envelop对象
       SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
       //实例化SoapObject对象
       SoapObject request = new SoapObject(SERVICE_NS, methodName);
这里我们要传递一个User对象给服务器端      封装此User对象
     
       User user1 = new User();
       user1.setPassword("123");
       user1.setUserID("A662");
       user1.setUsername("charles");
   这里的setName 一定要与服务器接收端的参数名一致,否则服务器端无法获得    
       PropertyInfo property = new PropertyInfo();
       property.setName("arg0");
       property.setValue(user1);
       property.setType(User.class);
       request.addProperty(property);

      envelope.addMapping(SERVICE_NS, "User", user1.getClass());

       envelope.bodyOut = ht;
            envelope.setOutputSoapObject(request);

       //将SoapObject对象设置为SoapSerializationEnvelope对象的传出SOAP消息
       try{
           //调用webService

           ht.call(null, envelope);
    
           if(envelope.getResponse() != null){
  
               SoapObject result = (SoapObject) envelope.bodyIn;
              System.out.println("result>>>>>>"+result);       
                      
              User user = new User();
              
               SoapObject soapChildsChilds = (SoapObject)result.getProperty(0); 
               user =  (User) JsonToBean.json2Bean(soapChildsChilds,User.class);//本人利用反射改写JsonToBean来获取user对象
           
               System.out.println(user);

       }catch (Exception e) {
           e.printStackTrace();
       }     

下面是自己定义的User对象

public class User implements KvmSerializable {

private Stringpassword;
private StringuserID;
private Stringusername;

public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserID() {
return userID;
}
public void setUserID(String userID) {
this.userID = userID;
}

@Override
public String toString() {
// TODO Auto-generated method stub
return "username :"+username+"password :"+password+"userID "+userID;
}
public Object getProperty(int arg0) {

switch (arg0) {
 case 0:
  return password;
 case 1:
 return userID;
 case 2:
 return username;

}
return null;
}
public int getPropertyCount() {
// TODO Auto-generated method stub
return 3;
}
public void getPropertyInfo(int arg0, Hashtable arg1, PropertyInfo arg2) {
switch (arg0) {
case 0: 
arg2.type = PropertyInfo.STRING_CLASS;
arg2.name = "password";//此处为解析xml标签时使用 注意引号一定不要少
break;
case 1:

arg2.type = PropertyInfo.STRING_CLASS;
arg2.name = "userID";
break;
case 2:

arg2.type = PropertyInfo.STRING_CLASS;
arg2.name = "username";
break;

}
}
public void setProperty(int arg0, Object arg1) {
switch (arg0) {
case 0: 
password = arg1.toString();
break;
case 1:

userID = arg1.toString();;
break;
case 2:

username = arg1.toString();;
break;

}
}
} 


个人感觉每次都需要实现KvmSerializable接口比较麻烦,目前还没找到比较好的方法来解决这个问题。








内容概要:本文详细介绍了PMSM(永磁同步电机)的仿真研究及其两种关键控制方法:三电平SVPWM矢量控制和双环矢量控制。首先阐述了PMSM在现代电机驱动系统中的重要地位及其广泛的应用领域,如电动汽车、机器人和风力发电等。接着讨论了PMSM仿真的重要性,包括电气特性、机械特性和热特性等方面的考量。然后深入探讨了三电平SVPWM矢量控制技术的工作原理及其对电机性能的提升效果,如提高运行效率和减少谐波失真。随后介绍了PMSM双环矢量控制的具体实现方式,即内环电流控制和外环速度控制相结合的方法,强调了这种方法在提高电机动态性能和稳定性方面的优势。最后对比了传统三电平控制方法和双环矢量控制方法的特点,指出了各自的优势和应用场景。 适合人群:从事电机控制系统研究的技术人员、高校相关专业师生、对电机控制感兴趣的工程技术人员。 使用场景及目标:适用于需要深入了解PMSM控制技术和仿真实现的研究项目和技术开发。目标是帮助读者掌握PMSM的仿真建模方法,理解并应用三电平SVPWM和双环矢量控制技术,以优化电机性能。 其他说明:本文不仅提供了理论分析,还通过MATLAB进行了详细的仿真演示,使读者能够直观地看到不同控制方法的效果。这对于实际工程项目的设计和优化具有重要的指导意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值