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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

{業(yè)務(wù)管理}電信增值業(yè)務(wù)及軟件開發(fā)實踐報告電信增值業(yè)務(wù)及軟件開發(fā)一實踐報告學(xué)院:軟件學(xué)院專業(yè):軟件工程班級:學(xué)號:姓名2:指導(dǎo)老師:20一三年06月22日實驗一:短消息MO指令匹配算法一、實驗步驟及實驗結(jié)果實驗代碼:#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<<"匹配次數(shù)為:"<<count<<endl;}else{cout<<"匹配次數(shù)為:"<<count<<endl;

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

}二、實驗截圖:二、心得:C/C++/C#或Java編程實現(xiàn)短消息MO短消息MO指令的長號碼和指令內(nèi)容的模糊和精確匹配、空指令匹配功能。實驗二:短消息增值業(yè)務(wù)軟件開發(fā)平臺及接口一、實驗步驟及實驗結(jié)果(1)實驗內(nèi)容“根據(jù)短信增值業(yè)務(wù)軟件開發(fā)平臺的操作手冊熟悉短信增值業(yè)務(wù)軟件開發(fā)平臺”的實驗步驟如下:登陸短信增值業(yè)務(wù)平臺x172.22.1一八.16:8081創(chuàng)建一個屬于自己的業(yè)務(wù),按需求和格式定義業(yè)務(wù)名稱、指令類型、匹配方式、資費、處理方式、通道并送發(fā)審核。實驗結(jié)果短信成功接收到,并且程序返回值為“0”結(jié)果分析明在程序中調(diào)用平臺接口的方式是正確的。(2)實驗內(nèi)容“根據(jù)短消息增值業(yè)務(wù)軟件開發(fā)平臺的接口手冊,熟悉短消息增值業(yè)務(wù)軟件開發(fā)平臺的HTTP接口、API接口、WebService接口等的使用方法”的實驗步驟如下:http接口的參數(shù)定義格式:在程序中調(diào)用已通過審核的業(yè)務(wù)Stringurl="x172.22.1一八.16:8081http/SendSms";//讀取接口傳遞過來的參數(shù)并封裝數(shù)據(jù)RequestDatard=newRequestData();("一五03");("2");("1");("1");("");("");("");("");("");通過程序來實現(xiàn)短信的下發(fā)代碼實現(xiàn):package.http;publicclassMainClass{Stringphone="";publicMainClass(){StringmtMsg="";StringmString="";Stringurl="x172.22.1一八.16:8081http/SendSms";//讀取接口傳遞過來的參數(shù)并封裝數(shù)據(jù)RequestDatard=newRequestData();("一五03");("2");("1");("1");("");("");("");("");("");//業(yè)務(wù)邏輯判斷mtMsg="第二條測試信息";(mtMsg);//拼接數(shù)據(jù)mString=()xmString(rd);//轉(zhuǎn)發(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傳遞的參數(shù)封裝成的包信息*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;}/***將結(jié)果短信轉(zhuǎn)發(fā)到指定的平臺*xparammString請求字符串*xparamaddress信息發(fā)送的目的URL地址*xreturnrec_string發(fā)送結(jié)果內(nèi)容*/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.根據(jù)短信增值業(yè)務(wù)軟件開發(fā)平臺的接口手冊熟悉短信增值業(yè)務(wù)軟件開發(fā)平臺的HTTP接口等。2.調(diào)用短信增值業(yè)務(wù)軟件開發(fā)平臺的HTTPWeb味答題”短信增值業(yè)務(wù)。實驗步驟創(chuàng)建業(yè)務(wù)因為本次實驗要調(diào)用HTTP接口,所以我們在選在處理方式的時候要選擇HTTP轉(zhuǎn)發(fā)提交審核審核通過業(yè)務(wù)實現(xiàn)數(shù)據(jù)庫設(shè)計User_message、題目信息表title_message。title_message表結(jié)構(gòu)字段類型默認值描述IdNumber(10)主鍵titleTypeVarchar2(30)題目類型consequenceVarchar2(10)題目答案titleNumberNumber(10)題目題號contentVarchar2(100)題目內(nèi)容user_message表結(jié)構(gòu)字段類型默認值描述IdVarchar2(100)主鍵phoneNumber(10)手機號碼titleTypeNumber(10)回答題目類型countNumberNumber(10)回答題目數(shù)successNumberNumber(10)答對題目數(shù)errorNumberNumber(10)答錯題目數(shù)三、心得供的功能,自己對于底層的實現(xiàn)還不能夠明確掌握。實驗三:基于HTTP接口的短消息編程一、實驗步驟及實驗結(jié)果1、將文件mpay_sms_http導(dǎo)入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)建數(shù)據(jù)庫輸入密碼進入配置界面輸入showdatabases;命令查看已經(jīng)存在的數(shù)據(jù)庫輸入createdatabasetest得到5、使用navicat新建數(shù)據(jù)庫將答題的數(shù)據(jù)輸入,如圖上傳提交二、心得熟悉短信增值業(yè)務(wù)軟件開發(fā)平臺HTTP接口等,掌握短信增值業(yè)務(wù)軟件開發(fā)的HTTP接口編程。實驗四:基于API接口的短消息編程一、實驗步驟及實驗結(jié)果本次試驗是建立在“短信增值業(yè)務(wù)軟件開發(fā)平臺HTTP接口程序設(shè)計”的基礎(chǔ)上,本次試驗中的信息處理類和DAO是在第七次實驗的基礎(chǔ)上稍加修改,這里我們就不做過多的解釋。1.創(chuàng)建一個業(yè)務(wù)2.提交審核3.審核通過4.業(yè)務(wù)實現(xiàn)數(shù)據(jù)庫設(shè)計User_message、題目信息表title_message。title_message表結(jié)構(gòu)字段類型默認值描述IdNumber(10)主鍵titleTypeVarchar2(30)題目類型consequenceVarchar2(10)題目答案titleNumberNumber(10)題目題號contentVarchar2(100)題目內(nèi)容user_message表結(jié)構(gòu)字段類型默認值描述IdVarchar2(100)主鍵phoneNumber(10)手機號碼titleTypeNumber(10)回答題目類型countNumberNumber(10)回答題目數(shù)successNumberNumber(10)答對題目數(shù)errorNumberNumber(10)答錯題目數(shù)創(chuàng)建API接口測試類http_package.api;import.;publicclassapi_Demo{publicstaticvoidmain(String[]args){Stringhost="172.一八.2.一八5";//短信實驗平臺地址intport=28020;//短信實驗平臺的服務(wù)端口(ctc端口)--默認為28020Stringuser="student";//用戶賬號Stringpasswd="123";//用戶密碼intserviceId=1;//業(yè)務(wù)ID---自己申請的業(yè)務(wù)ID號intchannelId=1;//通道ID---根據(jù)實際情況填寫().initChannel(host,port,user,passwd,channelId,serviceId);}}創(chuàng)建一個MD5.java來提供上行業(yè)務(wù)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)報告和響應(yīng)報告的功能package.utils;import.;import.;import.;import.;import..DeliverMsg;import..ReportMsg;import..SubmitMsg;/***SMSCallback自動調(diào)用相應(yīng)的方法進行處理**xauthordahantc*/publicclassSMSCallbackImplimplementsSMSCallback{xOverridepublicbooleanonDeliverSMS(IDeliverMsgarg0){//處理上行短信DeliverMsgmsg=(DeliverMsg)arg0;if(msg!=null){Stringfrom=();//手機號Stringto=();//上行服務(wù)號Stringcontent=();//短信內(nèi)容intmtTypeId=();//短信類型1:點播2:定制3:退訂4:普通路由參數(shù).println("收到deliverMsg:phone="+from+",內(nèi)容="+content+",to="+to+",mtTypeId="+mtTypeId);.println("開始進行業(yè)務(wù)邏輯處理......");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){//處理下行響應(yīng)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;}}二、結(jié)果用eclipse運行工程,如果返回”helloword”就說明項目成功。三、結(jié)果分析用eclipse運行工程,。看到如下內(nèi)容:臺提供的通道資源。API調(diào)用方式正確,并且成功調(diào)用API的數(shù)據(jù)庫等配置文件和創(chuàng)建的工具類都沒有發(fā)生邏輯和語法錯誤。四、心得熟悉短信增值業(yè)務(wù)軟件開發(fā)平臺APIAPI接口編程。實驗過程中還掌握通過類庫來實現(xiàn)MD5的創(chuàng)建和編寫,能夠在以后的程序編程中提供加密的功能。實驗五:短消息增值業(yè)務(wù)編程一、實驗步驟及實驗結(jié)果創(chuàng)建一個業(yè)務(wù)3.提交審核4.審核通過二、實現(xiàn)平臺的數(shù)據(jù)表:用戶答題信息表User_message、投票選手信息Person_message。Person_message表結(jié)構(gòu)字段類型默認值描述IdNumber(10)主鍵NameVarchar2(30)選手姓名RankVarchar2(10)選手排名user_message表結(jié)構(gòu)字段類型默認值描述IdVarchar2(100)主鍵phoneNumber(10)手機號碼數(shù)據(jù)庫鏈接功能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);//注冊驅(qū)動;return(DB_URL,DB_USER,DB_PASSWORD);//獲取數(shù)據(jù)庫連接;}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è)務(wù)邏輯類publicclassLogicUtil{privateLogicUtil(){}privatestaticLogicUtillogicUtil=null;publicstaticLogicUtilgetInstance(){if

溫馨提示

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

評論

0/150

提交評論