電信增值業(yè)務及軟件開發(fā)實踐報告_第1頁
電信增值業(yè)務及軟件開發(fā)實踐報告_第2頁
電信增值業(yè)務及軟件開發(fā)實踐報告_第3頁
電信增值業(yè)務及軟件開發(fā)實踐報告_第4頁
電信增值業(yè)務及軟件開發(fā)實踐報告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

{業(yè)務管理}電信增值業(yè)務及軟件開發(fā)實踐報告電信增值業(yè)務及軟件開發(fā)一實踐報告學院:軟件學院專業(yè):軟件工程班級:學號:姓名2:指導老師:20一三年06月22日實驗一:短消息MO指令匹配算法一、實驗步驟及實驗結果實驗代碼:#include<iostream.h>#include<string.h>voidmain(){charS[100];charT[50];cin>>S;cin>>T;intlen1,len2;intlen;intnext[100];inti,j;intk;intcount=0;len1=strlen(S);len2=strlen(T);len=len1-len2;j=1,k=0;next[1]=0;while(j<len2){if(k==0||T[j-1]==T[k-1]){j++;k++;next[j]=k;}elsek=next[k];}i=0;j=0;while(j!=len2&&i<len1){count++;if(S[i]!=T[j]){if(j==0)i++;elsej=next[j+1]-1;}else{i++;j++;}}cout<<len1<<endl;cout<<i<<endl;cout<<j<<endl;if(j==len2){cout<<"匹配成功,初始匹配成功的位置為第:"<<i-len2+1<<"個字符"<<endl;cout<<"匹配次數為:"<<count<<endl;}else{cout<<"匹配次數為:"<<count<<endl;

cout<<"匹配失敗"<<endl;}

}二、實驗截圖:二、心得:C/C++/C#或Java編程實現短消息MO短消息MO指令的長號碼和指令內容的模糊和精確匹配、空指令匹配功能。實驗二:短消息增值業(yè)務軟件開發(fā)平臺及接口一、實驗步驟及實驗結果(1)實驗內容“根據短信增值業(yè)務軟件開發(fā)平臺的操作手冊熟悉短信增值業(yè)務軟件開發(fā)平臺”的實驗步驟如下:登陸短信增值業(yè)務平臺x172.22.1一八.16:8081創(chuàng)建一個屬于自己的業(yè)務,按需求和格式定義業(yè)務名稱、指令類型、匹配方式、資費、處理方式、通道并送發(fā)審核。實驗結果短信成功接收到,并且程序返回值為“0”結果分析明在程序中調用平臺接口的方式是正確的。(2)實驗內容“根據短消息增值業(yè)務軟件開發(fā)平臺的接口手冊,熟悉短消息增值業(yè)務軟件開發(fā)平臺的HTTP接口、API接口、WebService接口等的使用方法”的實驗步驟如下:http接口的參數定義格式:在程序中調用已通過審核的業(yè)務Stringurl="x172.22.1一八.16:8081http/SendSms";//讀取接口傳遞過來的參數并封裝數據RequestDatard=newRequestData();("一五03");("2");("1");("1");("");("");("");("");("");通過程序來實現短信的下發(fā)代碼實現:package.http;publicclassMainClass{Stringphone="";publicMainClass(){StringmtMsg="";StringmString="";Stringurl="x172.22.1一八.16:8081http/SendSms";//讀取接口傳遞過來的參數并封裝數據RequestDatard=newRequestData();("一五03");("2");("1");("1");("");("");("");("");("");//業(yè)務邏輯判斷mtMsg="第二條測試信息";(mtMsg);//拼接數據mString=()xmString(rd);//轉發(fā)到重郵平臺().requestURL(mString,url);}publicstaticvoidmain(String[]args){MainClassmainClass=newMainClass();}}package.http;publicclassRequestData{

privateStringphone;privateStringdestNumber;

privateStringserviceId;

privateStringchannelId;

privateStringlinkId;

privateStringmoId;privateStringspNumber;privateStringfunctionType;privateStringtype;privateStringcontent;privateStringmtMsg;publicStringgetPhone(){returnphone;}publicvoidsetPhone(Stringphone){=phone;}publicStringgetDestNumber(){returndestNumber;}publicvoidsetDestNumber(StringdestNumber){=destNumber;}publicStringgetServiceId(){returnserviceId;publicvoidsetServiceId(StringserviceId){=serviceId;}publicStringgetChannelId(){returnchannelId;}publicvoidsetChannelId(StringchannelId){=channelId;}publicStringgetLinkId(){returnlinkId;}publicvoidsetLinkId(StringlinkId){=linkId;}publicStringgetMoId(){returnmoId;}publicvoidsetMoId(StringmoId){=moId;}publicStringgetSpNumber(){returnspNumber;}publicvoidsetSpNumber(StringspNumber){=spNumber;}publicStringgetFunctionType(){returnfunctionType;}publicvoidsetFunctionType(StringfunctionType){=functionType;}publicStringgetType(){returntype;}publicvoidsetType(Stringtype){=type;}publicStringgetContent(){returncontent;}publicvoidsetContent(Stringcontent){=content;}publicStringgetMtMsg(){returnmtMsg;}publicvoidsetMtMsg(StringmtMsg){=mtMsg;}}package.http;import.BufferedReader;

import.InputStreamReader;

import.OutputStream;import.UnsupportedEncodingException;

import.HttpURLConnection;

import.URL;import.URLEncoder;

publicclassRequestUtil{

privateRequestUtil(){

}privatestaticRequestUtilrequestUtil=null;

/***單例模式,返回RequestUtil的實例化對象**xreturnrequestUtil

*/publicstaticRequestUtilgetInstance(){if(requestUtil==null){requestUtil=newRequestUtil();//需要的時候才new,節(jié)省空間。}returnrequestUtil;}/***拼接字符串*xparamrd傳遞的參數封裝成的包信息*xreturnmString拼接好的請求信息字符串*/publicStringmString(RequestDatard){StringmString="";try{mString="userName=667&password=123&phone="+()+"&destNumber="+()+"&serviceId="+()+"&channelId="+()+"&linkId="+()+"&moId="+()+"&spNumber="+()+"&content="+((),"UTF-8")+"&functionType="+()+"&type="+()+"&=3";}catch(UnsupportedEncodingExceptione){e.printStackTrace();}returnmString;}/***將結果短信轉發(fā)到指定的平臺*xparammString請求字符串*xparamaddress信息發(fā)送的目的URL地址*xreturnrec_string發(fā)送結果內容*/publicStringrequestURL(StringmString,Stringaddress){Stringrec_string="";URLurl=null;HttpURLConnectionurlConn=null;try{url=newURL(address);urlConn=(HttpURLConnection)();(30000);(30000);("POST");(true);OutputStreamout=();(("GBK"));();();BufferedReaderrd=newBufferedReader(newInputStreamReader((),"UTF-8"));StringBuffersb=newStringBuffer();intch;while((ch=())>-1){((char)ch);}.println(());rec_string=().trim();();}catch(Exceptione){e.printStackTrace();}finally{if(urlConn!=null){();}}returnrec_string;}}1.根據短信增值業(yè)務軟件開發(fā)平臺的接口手冊熟悉短信增值業(yè)務軟件開發(fā)平臺的HTTP接口等。2.調用短信增值業(yè)務軟件開發(fā)平臺的HTTPWeb味答題”短信增值業(yè)務。實驗步驟創(chuàng)建業(yè)務因為本次實驗要調用HTTP接口,所以我們在選在處理方式的時候要選擇HTTP轉發(fā)提交審核審核通過業(yè)務實現數據庫設計User_message、題目信息表title_message。title_message表結構字段類型默認值描述IdNumber(10)主鍵titleTypeVarchar2(30)題目類型consequenceVarchar2(10)題目答案titleNumberNumber(10)題目題號contentVarchar2(100)題目內容user_message表結構字段類型默認值描述IdVarchar2(100)主鍵phoneNumber(10)手機號碼titleTypeNumber(10)回答題目類型countNumberNumber(10)回答題目數successNumberNumber(10)答對題目數errorNumberNumber(10)答錯題目數三、心得供的功能,自己對于底層的實現還不能夠明確掌握。實驗三:基于HTTP接口的短消息編程一、實驗步驟及實驗結果1、將文件mpay_sms_http導入Myeclipse中2、配置如圖3、發(fā)布工程及修改路徑4、訪問工程在地址欄中輸URL:x:8080/mpay_sms_httphttpTest回車得到發(fā)布工程中在<host></host>中加入代碼<Hostname="localhost"appBase="webapps"unpackWARs="true"autoDeploy="true"xmlValidation="false"xmlNamespaceAware="false"><Contextpath="/mpay_sms_http"docBase="C:\DocumentsandSettings\Administrator\Workspaces\MyEclipse8.x\mpay_sms_http\WebRoot"></Context><!--SingleSignOnvalve,shareauthenticationbetweenwebapplicationsDocumentationat:config/--><!--<ValveclassName="..SingleSignOn"/>--><!--Accesslogprocessesallexample.Documentationat:config/--><!--<ValveclassName="..AccessLogValve"directory="logs"prefix="localhost_access_log."suffix=".txt"pattern="mon"resolveHosts="false"/>--></Host>創(chuàng)建數據庫輸入密碼進入配置界面輸入showdatabases;命令查看已經存在的數據庫輸入createdatabasetest得到5、使用navicat新建數據庫將答題的數據輸入,如圖上傳提交二、心得熟悉短信增值業(yè)務軟件開發(fā)平臺HTTP接口等,掌握短信增值業(yè)務軟件開發(fā)的HTTP接口編程。實驗四:基于API接口的短消息編程一、實驗步驟及實驗結果本次試驗是建立在“短信增值業(yè)務軟件開發(fā)平臺HTTP接口程序設計”的基礎上,本次試驗中的信息處理類和DAO是在第七次實驗的基礎上稍加修改,這里我們就不做過多的解釋。1.創(chuàng)建一個業(yè)務2.提交審核3.審核通過4.業(yè)務實現數據庫設計User_message、題目信息表title_message。title_message表結構字段類型默認值描述IdNumber(10)主鍵titleTypeVarchar2(30)題目類型consequenceVarchar2(10)題目答案titleNumberNumber(10)題目題號contentVarchar2(100)題目內容user_message表結構字段類型默認值描述IdVarchar2(100)主鍵phoneNumber(10)手機號碼titleTypeNumber(10)回答題目類型countNumberNumber(10)回答題目數successNumberNumber(10)答對題目數errorNumberNumber(10)答錯題目數創(chuàng)建API接口測試類http_package.api;import.;publicclassapi_Demo{publicstaticvoidmain(String[]args){Stringhost="172.一八.2.一八5";//短信實驗平臺地址intport=28020;//短信實驗平臺的服務端口(ctc端口)--默認為28020Stringuser="student";//用戶賬號Stringpasswd="123";//用戶密碼intserviceId=1;//業(yè)務ID---自己申請的業(yè)務ID號intchannelId=1;//通道ID---根據實際情況填寫().initChannel(host,port,user,passwd,channelId,serviceId);}}創(chuàng)建一個MD5.java來提供上行業(yè)務MD5的加密方式package.utilsimport.MessageDigest;publicclassMD5{publicstaticfinalStringencode(StringsourceString){StringresultString=null;try{resultString=newString(sourceString);MessageDigestmd=("MD5");resultString=byte2hexString((()));}catch(Exceptionex){}returnresultString;}privatestaticfinalStringbyte2hexString(byte[]bytes){StringBufferbf=newStringBuffer(*2);for(inti=0;i<;i++){if((bytes[i]&0xff)<0x10){("0");}((bytes[i]&0xff,16));}return();}}創(chuàng)建一個類處理上行短息,下行狀態(tài)報告和響應報告的功能package.utils;import.;import.;import.;import.;import..DeliverMsg;import..ReportMsg;import..SubmitMsg;/***SMSCallback自動調用相應的方法進行處理**xauthordahantc*/publicclassSMSCallbackImplimplementsSMSCallback{xOverridepublicbooleanonDeliverSMS(IDeliverMsgarg0){//處理上行短信DeliverMsgmsg=(DeliverMsg)arg0;if(msg!=null){Stringfrom=();//手機號Stringto=();//上行服務號Stringcontent=();//短信內容intmtTypeId=();//短信類型1:點播2:定制3:退訂4:普通路由參數.println("收到deliverMsg:phone="+from+",內容="+content+",to="+to+",mtTypeId="+mtTypeId);.println("開始進行業(yè)務邏輯處理......");String_mand=().getResources("mand");//命令if(!().equals(_mand)){content=(_(),());}String_msg=().judgment(content,from);.println("開始發(fā)送短信:"+_msg);/***此處發(fā)送短信在下一步進行創(chuàng)建,暫時先寫在這里*/boolean_ret=().sendSMS((),(),from,_msg);.println("result:"+_ret);}returntrue;}xOverridepublicbooleanonSubmitedSMS(ISubmitMsgarg0){//處理下行響應SubmitMsgmsg=(SubmitMsg)arg0;if(msg!=null){StringsmsID=();StringmsgID=();intresult=();Stringto=();.println("收到submitresponse,to="+to+",smsID="+smsID+",msgID="+msgID+",result="+result);}returntrue;}xOverridepublicbooleanonMTReportSMS(IReportMsgarg0){//處理狀態(tài)報告ReportMsgmsg=(ReportMsg)arg0;if(msg!=null){StringmsgID=();//msgIdintresult=();//0:成功1:等待發(fā)送2:失敗.println("收到repot,msgID="+msgID+",result="+result);}returntrue;}}二、結果用eclipse運行工程,如果返回”helloword”就說明項目成功。三、結果分析用eclipse運行工程,??吹饺缦聝热荩号_提供的通道資源。API調用方式正確,并且成功調用API的數據庫等配置文件和創(chuàng)建的工具類都沒有發(fā)生邏輯和語法錯誤。四、心得熟悉短信增值業(yè)務軟件開發(fā)平臺APIAPI接口編程。實驗過程中還掌握通過類庫來實現MD5的創(chuàng)建和編寫,能夠在以后的程序編程中提供加密的功能。實驗五:短消息增值業(yè)務編程一、實驗步驟及實驗結果創(chuàng)建一個業(yè)務3.提交審核4.審核通過二、實現平臺的數據表:用戶答題信息表User_message、投票選手信息Person_message。Person_message表結構字段類型默認值描述IdNumber(10)主鍵NameVarchar2(30)選手姓名RankVarchar2(10)選手排名user_message表結構字段類型默認值描述IdVarchar2(100)主鍵phoneNumber(10)手機號碼數據庫鏈接功能package.utils;import.Connection;import.DriverManager;import.ResultSet;import.SQLException;import.PreparedStatement;publicclassJdbcUtil{privatestaticStringDB_DRIVER=().getResources("dbDriver");privatestaticStringDB_URL=().getResources("dbURL");privatestaticStringDB_USER=().getResources("dbUser");privatestaticStringDB_PASSWORD=().getResources("dbPassword");privatestaticJdbcUtil_jdbcUtil=null;privateJdbcUtil(){}publicstaticJdbcUtilgetInstance(){if(null==_jdbcUtil){_jdbcUtil=newJdbcUtil();}return_jdbcUtil;}publicConnectiongetConnection()throwsClassNotFoundException,SQLException{(DB_DRIVER);//注冊驅動;return(DB_URL,DB_USER,DB_PASSWORD);//獲取數據庫連接;}publicvoidclose(ResultSetrs,PreparedStatementstmt,Connectionconn){try{if(rs!=null){();}if(stmt!=null){();}if(conn!=null){();}}catch(SQLExceptione){e.printStackTrace();}}}MD5加密類publicclassMD5{publicstaticfinalStringencode(StringsourceString){StringresultString=null;try{resultString=newString(sourceString);MessageDigestmd=("MD5");resultString=byte2hexString((()));}catch(Exceptionex){}returnresultString;}privatestaticfinalStringbyte2hexString(byte[]bytes){StringBufferbf=newStringBuffer(*2);for(inti=0;i<;i++){if((bytes[i]&0xff)<0x10){("0");}((bytes[i]&0xff,16));

}return();}}業(yè)務邏輯類publicclassLogicUtil{privateLogicUtil(){}privatestaticLogicUtillogicUtil=null;publicstaticLogicUtilgetInstance(){if

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論