MM7api反向服务开发过程中报文的解析

来源:互联网 发布:mac如何使用shadowsock 编辑:程序博客网 时间:2024/06/11 05:45

 需求分析:  根据中国移动MM7协议   和MM7 api的jar包  反向开发MM7服务端。

依赖于MM7api 的jar包(因为请求的报文 已经在jar包中封装好,所以拿来直接用。 报文内容 可以看到  mm7api 包 的  soapEcoder.class) 

该请求协议时   Http POST + soap      使用soap协议打在http post发送请求。 在mm7api中  封装好了 请求体。  this is a multi-part message in MIME format

的请求报文。

MM7API请求完整报文

this is a multi-part message in MIME format
----NextPart_0_2817_24856
Content-Type:text/xml;charset="UTF-8"
Content-Transfer-Encoding:8bit
Content-ID:</tnn-200102/mm7-vasp>


<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header><mm7:TransactionID xmlns:mm7="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-0" env:mustUnderstand="1">11111111</mm7:TransactionID></env:Header><env:Body><SubmitReq xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-0"><MM7Version>6.3.0</MM7Version><SenderIdentification><VASPID>1234</VASPID><VASID>1234</VASID></SenderIdentification><Recipients><To><Number>155003657</Number></To></Recipients><ServiceCode>123</ServiceCode><Subject>娴嬭瘯</Subject></SubmitReq></env:Body></env:Envelope>
----NextPart_0_2817_24856
Content-Type:multipart/mixed;boundary="SubPart_7452684322002_77645"
Content-ID:<SaturnPics-01020930>
Content-Transfer-Encoding:8bit


--SubPart_7452684322002_77645
Content-Type:image/gif
Content-Transfer-Encoding:8bit
Content-ID:5

?唙?想_CX?拣t2h??瘺蓜庅r1椘O蓖s鹜i?\轌in.訷??狙嘨l啀荿x8吏qt*b?G9?;|硧鵞控颸}+霾餽+暦畸U礃?G玙琂k?

--SubPart_7452684322002_77645

Content-Type:image/gif
Content-Transfer-Encoding:8bit
Content-ID:5

二进制



--SubPart_7452684322002_77645--
----NextPart_0_2817_24856--


至此报文结束;

分析可见

--SubPart_7452684322002_77645--    该节点为分段式报文的分隔符。   这个多模块传输  就是  mime邮件协议。  有附件

报文的接受 使用  原生servlet 中  request.getInputStream()   而没有用 springmvc(Httpservletrequest ,此处有坑)

接受报文后需要自己解析  ,封装  记住 在其中  string-->byte[]   byte[]--string  编解码 需要使用“ISO-8859-1” 不要用别的编码   如果使用别的编码会  “丢包”。  




原创粉丝点击