调用应用服务器的接口

一、在我的移动项目——NewDraftWriteActivity类——leave()函数,直接调用接口,该类继承了接口BPowerKernelWaitCallback,实现该接口的方法为获得调用接口的返回值。

	/**
	 *  一、在我的一个移动项目中——NewDraftWriteActivity类——leave()函数,直接调用接口,
	 *  该类继承了接口BPowerKernelWaitCallback,实现该接口的方法为获得调用接口的返回值
	 *  请假功能
	 */
	private WebServiceCall webServiceCall;
	protected void leave() {
		JSONObject param = new JSONObject();
		try {
			param.put("huiyicanyujiluliushuihao", huiyicanyujiluliushuihao);
			param.put("qingjianeirong", content);
		} catch (JSONException e) {
			e.printStackTrace();
		}
		try {
			String params = new String(param.toString().getBytes(),"utf-8");
			webServiceCall = new WebServiceCall(this);
			webServiceCall.setiParamRequest(params);
			webServiceCall.setsParamQueryText("HuiYiQingJia");
			webServiceCall.startWebService(this);   
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
	}

二、调用接口后从服务器返回的值

	/**
	 *  二、调用接口后从服务器返回的值
	 * cExec=proposalbill.mobile.w00300_fhz_comm.WebServiceCall$WebServiceExecutor@40659840,  nID=1,  cResult=null
	 */
	public void onREDone(BPowerRemoteExecutor cExec, int nID, BPowerPacket cResult) {
		super.onREDone(cExec, nID, cResult);
		System.out.println("cExec="+cExec+",  nID="+nID+",  cResult="+cResult);
		if(nID==1){
			PublicTools.displayToast("请假成功!");
			btnSave.setClickable(true);
			content = "";
			etContent.setText("");
			etContent.setHint("");
		}
	};

三、在WebServiceCall里startWebService()方法

	/**
	 * 三、在WebServiceCall里startWebService()方法
	 * @param iProc2015-3-12备注
	 */
	public void startWebService(BPowerKernelWaitCallback iProc){
		webServiceExecutor=new WebServiceExecutor(iProc, 0);
		webServiceExecutor.setID(1);
		webServiceExecutor.start();
	}

四、调用应用服务器的接口

	/**
	 * 四、传参数进去并获得应用服务器的接口返回的值queryResult
	 * 2014-2-25
	 * @author nm
	 */
	public  MobileDataProvider m_dbresult;
	class WebServiceExecutor extends AndroidRPCThreadExecutor {
		public WebServiceExecutor(BPowerKernelWaitCallback iProc, int nFlags) {
			super(ClientKernel.getKernel(), bpowerRPCactiity, iProc, nFlags);
		}
		@Override
		protected int internalRun() {
			StringBuffer sErrMsg = new StringBuffer();
			if(sParamsOperation!=null&&iParamsRequest!=""){
				queryResult = m_dbresult.leave(this,
						"建议提案业务管理器",
						"执行业务服务",
					sParamsOperation, iParamsRequest, sErrMsg);
				m_sError=sErrMsg.toString();
			}
			m_nErrorCode = queryResult;
			if(queryResult>=0) {
				return BPowerCode.BPC_OK;
			}else {
				return BPowerCode.BPC_FALSE;			
			}
		}
	}

五、调用应用服务器的接口

	/**
	 * 五、调用应用服务器的接口
	 * 会议通知——请假
	 * @param cExecutor
	 * @param sModName接口名字
	 * @param sFuncName应用服务器名字
	 * @param sOperation操作名 请假
	 * @param sRequest json对象
	 * @param sErrMsg
	 * @return2015-2-26备注
	 */
	public int leave(BPowerRPCThreadExecutor cExecutor, String portName,
			String appServerName, String sOperation, String sRequest, StringBuffer sErrMsg) {
		int Result = -1;
		BPowerPacket cPkt = new BPowerPacket();
		cPkt.newFuncCall("建议提案业务管理器", "执行业务服务");//portName, appServerName其实()里是这2参数
		cPkt.addParam("sOperation", sOperation);//HuiYiQingJia
		cPkt.addParam("sRequest", "<m:parameter>" + sRequest + "</m:parameter>");//<m:parameter>{"qingjianeirong":"请假内容","huiyicanyujiluliushuihao":"120"}</m:parameter>
		BPowerPacket cResult = rpc(cExecutor, cPkt, sErrMsg);//返回结果
		if (cResult == null) return -1;
		if (BPowerCode.S_OK == cResult.getResultItem()) {//远程调用webservice成功;
			Result = 1;
		} else {
			handleErrMsg(cResult, sErrMsg);
		}
		return Result;// BPowerCode.BPC_OK;
	}

完。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值