android soup web用戶端程式

來源:互聯網
上載者:User

WebService是一種基於SOAP協議的遠程調用標準。通過WebService可以將不同作業系統平台,不同語言、不同技術整合到一起。
下載ksoap2-android-assembly-2.4-jar-with-dependencies.jar包。並放到項目的lib目錄下,然後匯入到工程中,及可以引用了。

 private static final String NAMESPACE ="http://www.METS.com/";<br />private static String URL = "http://61.145.165.250:1012/MetsWebService.asmx";<br /> private static final String METHOD_NAME = "Process";<br /> private static String SOAP_ACTION = "http://www.METS.com/Process";<br /> SoapObject result;<br /> private String getStat(){</p><p> String dataStr="F4:C7:14:65:B9:72";//發送給伺服器的字串</p><p> byte[] sendData=dataStr.getBytes();//擷取到該字串的byte流</p><p> byte[] reqDeliveEquip=WebSvcPacket.BuildWebSvcPacket(3000, sendData, sendData.length);//給原始byte流加密</p><p> String str=Base64.encodeToString(reqDeliveEquip, Base64.DEFAULT);//把加密後的byte流轉化成base64字串</p><p> SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME); //構造 SoapObject對象,傳入命名空間和方法名稱參數</p><p> //傳給伺服器的欄位資訊(soup協議)<br /> rpc.addProperty("strUserAccount", "131");<br /> rpc.addProperty("strTicket", "");<br /> rpc.addProperty("pRequestPkt", str);//int,string,double -byte[]</p><p> AndroidHttpTransport ht = new AndroidHttpTransport(URL);//根據伺服器位址建立AndroidHttpTransport對象<br /> ht.debug=true;</p><p> SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(<br /> SoapEnvelope.VER11); //建soup協議版本為 VER11的信封<br /> envelope.bodyOut = rpc; //把這個SoupObject對象傳給信封的寫流 </p><p> envelope.dotNet = true; //支援.net伺服器<br /> envelope.setOutputSoapObject(rpc); //設定信封的輸出SoupObjext對象 </p><p> try {<br /> ht.call(SOAP_ACTION, envelope); }<br /> catch (IOException e) {<br /> return "IOException:"+e.getMessage(); }<br /> catch (XmlPullParserException e) {<br /> return "XmlPullParserException:"+e.getMessage(); }</p><p> //開始接受伺服器的回複資料</p><p> result = (SoapObject) envelope.bodyIn;</p><p> String receiverData=result.getProperty("pOutResponsePkt").toString(); //根據soup協議擷取一定欄位的值 </p><p> byte[] receBytes=Base64.decode(receiverData, Base64.DEFAULT);//把字串解碼成byte流</p><p> byte[] parseData=WebSvcPacket.ParseWebSvcPacket(receBytes, receBytes.length, code);//解碼<br /> String datas = null;<br /> if(parseData!=null)<br /> {<br /> String recvData = null;<br />try {<br />recvData = new String(parseData, "UTF-8");//列印從伺服器擷取的字串<br />} catch (UnsupportedEncodingException e1) {<br />// TODO Auto-generated catch block<br />e1.printStackTrace();<br />}<br /> Log.i("mylog","-------------------------------------------------------------------------------------");<br /> String[] recvAry = recvData.split("/t");<br /> String serverTime = recvAry[0].substring(1, recvAry[0].length() - 1);<br /> Log.i("mylog","serverTime:"+serverTime);<br /> String srcTicket = recvAry[1];<br /> Log.i("mylog","srcTicket:"+srcTicket);<br /> String encryptKey = recvAry[2];<br /> Log.i("mylog","encryptKey:"+encryptKey);<br /> String ticket = new String();<br /> Log.i("mylog","ticket:"+ticket);</p><p> ticket = WebSvcPacket.GenerateTicket("131", serverTime, encryptKey, srcTicket);</p><p> datas=RequestDeliveEuip.requestDeliveEuip(ticket);</p><p> }<br />return datas;<br /> }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.