正文

中国移动MM7 API用户手册(六)2006-06-20 09:21:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/ggbm/16055.html

分享到:

4.3 VASP接收传送消息以及发送提交消息实例 举一个实例说明VASP构建MM7SubmitReq,发送给MMSC,并得到返回消息,通过StatusCode判断,本次发送是否成功,若成功,得到MessageID,以便以后希望取消或替换该消息时用。   public class MyReceiver extends MM7Receiver {     //定义一个MM7DeliverReq,以便得到MMSC发过来的Deliver消息。(必备)     public static MM7DeliverReq deliverReq = new MM7DeliverReq();     //Main方法        public static void main(String[]args)        {       //初始化VASP MM7Config mm7Config = new MM7Config(“../config/mm7Config.xml”); //设置ConnConfig.xml文件的路径 mm7Config.setConnConfigName(“../config/ConnConfig.xml”);  //必备 //构造MyReceiver MyReciever receiver = new MyReceiver(); receiver.setConfig(mm7Config);  //必备 //创建MM7消息发送接口 MM7Sender mm7Sender = new MM7Sender(mm7Config); //启动接收器 receiver.start(); //接收MM7DeliverReq完毕,开始构造MM7SubmitReq //有两种可能,一种是MM7SubmitReq完全由SP构造,另一种是SP用接收到的 //MM7DeliverReq的部分内容进行填充。 MM7SubmitReq submitReq = new MM7SubmitReq(); submitReq.setVASPID("SP代码") ;  //必备 submitReq.setVASID("服务代码") ; //必备 submitReq.setServiceCode("业务代码");  //必备 submitReq.setSenderAddress("MM始发方的地址"); /*必备,若想从MM7DeliverReq中获得, 则应按下面的方式设:        submitReq.setSenderAddress(deliverReq.getSender());*/ submitReq.setTo("接收方地址");  /*若想从MM7DeliverReq中获得,则应按下面的方式设:         submitReq.setTo(deliverReq.getTo());*/          submitReq.addTo("单个接受方地址");  //增加单个接受方地址 submitReq.setCc("抄送方地址");  /*若想从MM7DeliverReq中获得,则应按下面的方式设:                      submitReq.setCc(deliverReq.getCc()) ;*/          submitReq.addCc("单个抄送方地址");  //增加单个抄送方地址 submitReq.setBcc("密送方地址");  /*若想从MM7DeliverReq中获得,则应按下面的方式设: submitReq.setBcc(deliverReq.getBcc()) ;*/ submitReq.addBcc("单个密送方地址");  //增加单个密送方地址 submitReq.setLinkedID("链接标识");  /*可选,若想从MM7DeliverReq中获得,则应按 下面的方式设:submitReq.setLinkedID(deliverReq.getLinkedID()) ;*/ submitReq.setMessageClass("MM的类别");  /*可选*/ submitReq.setTimeStamp("提交MM的日期和时间");  /*格式如2004-02-09T10:21:07, 可选*/ submitReq.setExpiryDate("指定超时时间");  /*可选*/ submitReq.setEarliestDeliveryTime("最早理想时间");  /*可选*/ submitReq.setDeliveryReport("发送报告的请求"); /* boolean值,可选*/ submitReq.setReadReply("需要读取报告的请求");  /*可选*/ submitReq.setReplyCharging("应答计费的请求");  /*boolean值,可选*/ submitReq.setReplyDeadline("提交应答的最迟时间"); /*可选*/ submitReq.setReplyChargingSize("应答MM的最大大小");  /*可选*/ submitReq.setPriority("消息的优先级");  /* 0=最低优先级,1=正常,2=紧急,byte类型的值,可选,若想从MM7DeliverReq中获得,则应按下面的方式设: submitReq.setPriority(deliverReq.getPriority());*/ submitReq.setSubject("多媒体消息的标题");  /*可选,若想从MM7DeliverReq中获得,则 应按下面的方式设:SubmitReq.setSubject(deliverReq.getSubject());*/ submitReq.setAllowAdaptations("VASP是否允许修改内容"); // boolean值,默认为真,可选 submitReq.setChargedParty("VASP所提交MM的付费方");  /*可选*/ submitReq.setChargedPartyID("chargedPartyID"); /*必备*/ submitReq.setDistributionIndicator("是否可重新分发"); /*boolean值,true为可以,false为不 可以,可选*/ //开始创建多媒体消息的内容 /*每个消息内容体就是一个MMContent实例,可以添加多个消息内容体,但是所有消息内容体大小之和不能超过MMSC允许大小(目前最大支持128K)。*/ MMContent content = new MMContent(); content.setContentType(MMConstants.ContentType.MULTIPART_RELATED); /**添加类型为Gif的附件一 */ MMContent sub1 = MMContent.createFromFile("f:\\yellow.gif"); sub1.setContentID("1.gif");   //可以不设 sub1.setContentType(MMConstants.ContentType.GIF); /*可以不设,但这个不设的话, ContentID必须设*/ content.addSubContent(sub1); /**添加类型为Txt的附件二*/ MMContent sub2 = MMContent.createFromString("This is a Test2!"); sub2.setContentID("2.txt"); sub2.setContentType(MMConstants.ContentType. TEXT); content.addSubContent(sub2); /**将附件进行设置*/ submitReq.setContent("多媒体消息的内容");  /*可选,也可以从MM7DeliverReq中获得多 媒体消息的内容,submitReq.setContent(deliverReq.getContent());*/ /*发送MM7SubmitReq消息,正确返回MM7SubmitRes消息,错误返回MM7RSError消息, 其它消息与此类似*/          MM7RSRes res = mm7Sender.send(submitReq);           /*可以根据StatusCode来判断本次发送是否成功,若成功能得到MessageID等信息。 StatusCode可能得到的值,具体可见本文中的请求状态码说明。*/          if(res.getStatusCode() == MMConStants.RequestStatus.SUCCESS) {     MM7SubmitRes submitRes = (MM7SubmitRes)res;     System.out.println(“StatusText=”+ submitRes.getStatusText());     System.out.println(“MessageID=”+ submitRes .getMessageID());       }     }     public MM7VASPRes doDeliver(MM7DeliverReq request)        {         /*接收从MMSC发过来的传送消息,以便取出其中的部分值构造提交消息或得到一些有用 信息,如MMSC的标识符等*/         deliverReq = request;         System.out.println(“收到手机”+request.getSender() +“提交的消息,标题为:”+request.getSubject());         System.out.println("MMSC的标识符为:"+request. GetMMSRelayServerID()) ;         //SP需要进行一些处理,例如构建MM7DeliverRes消息,设置ServiceCode或StatusCode MM7DeliverRes mm7DeliverRes = new MM7DeliverRes(); mm7DeliverRes.setServiceCode("服务代码"); //可选 mm7DeliverRes.setStatusCode(MMConstants.RequestStatus.SUCCESS); /*必备,以便表明 SP已经接收到传送消息。成功可设1000。*/         mm7DeliverRes.setStatusText("所用状态文本说明");  /*可选*/         //返回给MM7 API,以便API将MM7DeliverRes返回给MMSC。 return(MM7VASPRes)mm7DeliverRes;     } }

阅读(3786) | 评论(2)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册