android soup web客户端程序

WebService是一种基于SOAP协议的远程调用标准。通过WebService可以将不同操作系统平台,不同语言、不同技术整合到一起。
下载ksoap2-android-assembly-2.4-jar-with-dependencies.jar包。并放到项目的lib目录下,然后导入到工程中,及可以引用了。

 private static final String NAMESPACE ="http://www.METS.com/"; private static String URL = "http://61.145.165.250:1012/MetsWebService.asmx"; private static final String METHOD_NAME = "Process"; private static String SOAP_ACTION = "http://www.METS.com/Process"; SoapObject result; private String getStat(){ String dataStr="F4:C7:14:65:B9:72";//发送给服务器的字符串 byte[] sendData=dataStr.getBytes();//获取到该字符串的byte流 byte[] reqDeliveEquip=WebSvcPacket.BuildWebSvcPacket(3000, sendData, sendData.length);//给原始byte流加密 String str=Base64.encodeToString(reqDeliveEquip, Base64.DEFAULT);//把加密后的byte流转化成base64字符串 SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME); //构造 SoapObject对象,传入命名空间和方法名称参数 //传给服务器的字段信息(soup协议) rpc.addProperty("strUserAccount", "131"); rpc.addProperty("strTicket", ""); rpc.addProperty("pRequestPkt", str);//int,string,double -byte[] AndroidHttpTransport ht = new AndroidHttpTransport(URL);//根据服务器地址建立AndroidHttpTransport对象 ht.debug=true; SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11); //建soup协议版本为 VER11的信封 envelope.bodyOut = rpc; //把这个SoupObject对象传给信封的写流 envelope.dotNet = true; //支持.net服务器 envelope.setOutputSoapObject(rpc); //设置信封的输出SoupObjext对象 try { ht.call(SOAP_ACTION, envelope); } catch (IOException e) { return "IOException:"+e.getMessage(); } catch (XmlPullParserException e) { return "XmlPullParserException:"+e.getMessage(); } //开始接受服务器的回复数据 result = (SoapObject) envelope.bodyIn; String receiverData=result.getProperty("pOutResponsePkt").toString(); //根据soup协议获取一定字段的值 byte[] receBytes=Base64.decode(receiverData, Base64.DEFAULT);//把字符串解码成byte流 byte[] parseData=WebSvcPacket.ParseWebSvcPacket(receBytes, receBytes.length, code);//解码 String datas = null; if(parseData!=null) { String recvData = null; try { recvData = new String(parseData, "UTF-8");//打印从服务器获取的字符串 } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } Log.i("mylog","-------------------------------------------------------------------------------------"); String[] recvAry = recvData.split("/t"); String serverTime = recvAry[0].substring(1, recvAry[0].length() - 1); Log.i("mylog","serverTime:"+serverTime); String srcTicket = recvAry[1]; Log.i("mylog","srcTicket:"+srcTicket); String encryptKey = recvAry[2]; Log.i("mylog","encryptKey:"+encryptKey); String ticket = new String(); Log.i("mylog","ticket:"+ticket); ticket = WebSvcPacket.GenerateTicket("131", serverTime, encryptKey, srcTicket); datas=RequestDeliveEuip.requestDeliveEuip(ticket); } return datas; }

你可能感兴趣的:(android soup web客户端程序)