webService网络服务调用总结(3)

2018-11-23 20:16

paramMap = new LinkedHashMap(); paramMap.put(\ paramMap.put(\ flag = 2;

return LoadResult(methodName, paramMap); }

}

对于这个类,需要啰嗦几句。

主要方法是LoadResult(String methodName, Map)方法,它主要负责调用服务。从上述标记红色的代码可以看出,其他方法在结尾时都调用了该方法,这样写主要是为了提高代码的复用性。我们发现每次调用时我们传递的第二个参数都是Map的子类LinkedHashMap类型,因为这样能保证参数存入Map集合中的顺序和参数从Map中取出来的顺序是一致的(因为参数的顺序会影响到xml信息的拼装,就可能导致服务端解析不了的错误),所以此处选择了具体的LinkedHashMap类型由于承载参数在类内部的传递。 然后我们讲解一下几个对应不同类型参数的方法:

无参的方法(serverTime)在此处代表了基本数据类型参数的调用服务和无参调用服务两种情况,由于基本数据类型在ksoap2中已经做了默认的映射,所以映射工作我们不必再做,只需要直接设置参数就行(只是需要参数名称与参数值要保证一一对应)。

自定义参数的方法(Register)在此处代表含有自定义参数的调用服务操作,这里的参数为TransferParams类型,针对这种自定义类型,我们需要映射,既然要映射,就需要服务器端和客户端的各自的类型,而此时只有服务器端对这个类型进行了定义,客户端并没有对这个类型进行定义,所以接下来的第一件事就是定义TransferParams类型。具体作法如下: 4、 新建TransferParams.java文件,实现KvmSerializable接口,代码如下:

package com.example.webservicetest;

import java.util.Hashtable;

import org.ksoap2.serialization.KvmSerializable; import org.ksoap2.serialization.PropertyInfo;

public class TransferParams implements KvmSerializable{ private boolean Compress; private intDBType;

private booleanDefaultLogic; private String EnterpriseID; private intFileType; private String MD5; private String PDAID; private String StationID; private String Version;

@Override

public Object getProperty(int arg0) {

switch (arg0) { case 0: return Compress; case 1: return DBType; case 2: return DefaultLogic; case 3: return EnterpriseID; case 4: return FileType; case 5: return MD5; case 6: return PDAID; case 7: return StationID; case 8: return Version; default: return null; } }

@Override

public intgetPropertyCount() { return 9;//参数的个数 }

@Override

public void getPropertyInfo(int arg0, Hashtable arg1, PropertyInfo arg2) { //这个很重要

arg2.namespace=\ switch (arg0) { case 0:

arg2.type=PropertyInfo.BOOLEAN_CLASS; arg2.name=\ break; case 1:

arg2.type=PropertyInfo.INTEGER_CLASS; arg2.name=\ break; case 2:

arg2.type=PropertyInfo.BOOLEAN_CLASS;

arg2.name=\ break;

case 3:

arg2.type=PropertyInfo.STRING_CLASS; arg2.name=\ break;

case 4:

arg2.type=PropertyInfo.INTEGER_CLASS; arg2.name=\ break;

case 5:

arg2.type=PropertyInfo.STRING_CLASS; arg2.name=\ break;

case 6:

arg2.type=PropertyInfo.STRING_CLASS; arg2.name=\ break;

case 7:

arg2.type=PropertyInfo.STRING_CLASS; arg2.name=\ break;

case 8:

arg2.type=PropertyInfo.STRING_CLASS; arg2.name=\ break;

default: break; } }

@Override

public void setProperty(int arg0, Object arg1) { switch (arg0) { case 0: Compress = Boolean.getBoolean(arg1.toString()); break; case 1: DBType = Integer.valueOf(arg1.toString()); break; case 2: DefaultLogic = Boolean.getBoolean(arg1.toString()); break; case 3:

EnterpriseID = arg1.toString(); break; case 4: FileType = Integer.valueOf(arg1.toString()); break; case 5: MD5 = arg1.toString(); break; case 6: PDAID = arg1.toString(); break; case 7: StationID = arg1.toString(); break; case 8: Version = arg1.toString(); break; default: break; } }

public booleanisCompress() { return Compress; }

public void setCompress(boolean compress) { Compress = compress; }

public intgetDBType() { return DBType; }

public void setDBType(intdBType) { DBType = dBType; }

public booleanisDefaultLogic() { return DefaultLogic; }

public void setDefaultLogic(booleandefaultLogic) { DefaultLogic = defaultLogic;

}

public String getEnterpriseID() { return EnterpriseID; }

public void setEnterpriseID(String enterpriseID) { EnterpriseID = enterpriseID; }

public intgetFileType() { return FileType; }

public void setFileType(intfileType) { FileType = fileType; }

public String getMD5() { return MD5; }

public void setMD5(String mD5) { MD5 = mD5; }

public String getPDAID() { return PDAID; }

public void setPDAID(String pDAID) { PDAID = pDAID; }

public String getStationID() { return StationID; }

public void setStationID(String stationID) { StationID = stationID; }

public String getVersion() { return Version;


webService网络服务调用总结(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:初级长拳二路

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: