电信增值业务及软件开发实践报告_第1页
电信增值业务及软件开发实践报告_第2页
电信增值业务及软件开发实践报告_第3页
电信增值业务及软件开发实践报告_第4页
电信增值业务及软件开发实践报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

{业务管理}电信增值业务及软件开发实践报告电信增值业务及软件开发一实践报告学院:软件学院专业:软件工程班级:学号:姓名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指令的长号码和指令内容的模糊和精确匹配、空指令匹配功能。实验二:短消息增值业务软件开发平台及接口一、实验步骤及实验结果(1)实验内容“根据短信增值业务软件开发平台的操作手册熟悉短信增值业务软件开发平台”的实验步骤如下:登陆短信增值业务平台x172.22.1一八.16:8081创建一个属于自己的业务,按需求和格式定义业务名称、指令类型、匹配方式、资费、处理方式、通道并送发审核。实验结果短信成功接收到,并且程序返回值为“0”结果分析明在程序中调用平台接口的方式是正确的。(2)实验内容“根据短消息增值业务软件开发平台的接口手册,熟悉短消息增值业务软件开发平台的HTTP接口、API接口、WebService接口等的使用方法”的实验步骤如下:http接口的参数定义格式:在程序中调用已通过审核的业务Stringurl="x172.22.1一八.16:8081http/SendSms";//读取接口传递过来的参数并封装数据RequestDatard=newRequestData();("一五03");("2");("1");("1");("");("");("");("");("");通过程序来实现短信的下发代码实现:package.http;publicclassMainClass{Stringphone="";publicMainClass(){StringmtMsg="";StringmString="";Stringurl="x172.22.1一八.16:8081http/SendSms";//读取接口传递过来的参数并封装数据RequestDatard=newRequestData();("一五03");("2");("1");("1");("");("");("");("");("");//业务逻辑判断mtMsg="第二条测试信息";(mtMsg);//拼接数据mString=()xmString(rd);//转发到重邮平台().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,节省空间。}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;}/***将结果短信转发到指定的平台*xparammString请求字符串*xparamaddress信息发送的目的URL地址*xreturnrec_string发送结果内容*/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.根据短信增值业务软件开发平台的接口手册熟悉短信增值业务软件开发平台的HTTP接口等。2.调用短信增值业务软件开发平台的HTTPWeb味答题”短信增值业务。实验步骤创建业务因为本次实验要调用HTTP接口,所以我们在选在处理方式的时候要选择HTTP转发提交审核审核通过业务实现数据库设计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、发布工程及修改路径4、访问工程在地址栏中输URL:x:8080/mpay_sms_httphttpTest回车得到发布工程中在<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>创建数据库输入密码进入配置界面输入showdatabases;命令查看已经存在的数据库输入createdatabasetest得到5、使用navicat新建数据库将答题的数据输入,如图上传提交二、心得熟悉短信增值业务软件开发平台HTTP接口等,掌握短信增值业务软件开发的HTTP接口编程。实验四:基于API接口的短消息编程一、实验步骤及实验结果本次试验是建立在“短信增值业务软件开发平台HTTP接口程序设计”的基础上,本次试验中的信息处理类和DAO是在第七次实验的基础上稍加修改,这里我们就不做过多的解释。1.创建一个业务2.提交审核3.审核通过4.业务实现数据库设计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)答错题目数创建API接口测试类http_package.api;import.;publicclassapi_Demo{publicstaticvoidmain(String[]args){Stringhost="172.一八.2.一八5";//短信实验平台地址intport=28020;//短信实验平台的服务端口(ctc端口)--默认为28020Stringuser="student";//用户账号Stringpasswd="123";//用户密码intserviceId=1;//业务ID---自己申请的业务ID号intchannelId=1;//通道ID---根据实际情况填写().initChannel(host,port,user,passwd,channelId,serviceId);}}创建一个MD5.java来提供上行业务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();}}创建一个类处理上行短息,下行状态报告和响应报告的功能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("开始进行业务逻辑处理......");String_mand=().getResources("mand");//命令if(!().equals(_mand)){content=(_(),());}String_msg=().judgment(content,from);.println("开始发送短信:"+_msg);/***此处发送短信在下一步进行创建,暂时先写在这里*/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){//处理状态报告ReportMsgmsg=(ReportMsg)arg0;if(msg!=null){StringmsgID=();//msgIdintresult=();//0:成功1:等待发送2:失败.println("收到repot,msgID="+msgID+",result="+result);}returntrue;}}二、结果用eclipse运行工程,如果返回”helloword”就说明项目成功。三、结果分析用eclipse运行工程,。看到如下内容:台提供的通道资源。API调用方式正确,并且成功调用API的数据库等配置文件和创建的工具类都没有发生逻辑和语法错误。四、心得熟悉短信增值业务软件开发平台APIAPI接口编程。实验过程中还掌握通过类库来实现MD5的创建和编写,能够在以后的程序编程中提供加密的功能。实验五:短消息增值业务编程一、实验步骤及实验结果创建一个业务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();}}业务逻辑类publicclassLogicUtil{privateLogicUtil(){}privatestaticLogicUtillogicUtil=null;publicstaticLogicUtilgetInstance(){if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论