SyncML一点东西(代码)

本文介绍了SyncML协议在数据同步过程中的应用实例,包括初始化请求、服务器响应及数据替换请求等关键步骤。通过XML格式详细展示了客户端与服务器之间的交互流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总共发了三个段子嘛,第一个是客户端发起初始请求到服务器端表示要开始一个SyncML会话,第二个段子是服务器对第一个段子的应答,表示会话可以继续进行。第三个段子表示客户端向服务器端发出数据替换请求

这个是我的引擎在调试时输出的一个同步请求
<?xml version="1.0" encoding="UTF-8"?>
<SyncML>
 <SyncHdr>
  <VerDTD>1.1< erDTD>
  <VerProto>SyncML/1.1< erProto>
  <SessionID>1< ssionID>
  <MsgID>1</MsgID>
  <Target><LocURI>http://172.16.204.229:8080/sync4j/sync/db/contact</LocURI></Target>
  <Source><LocURI>sc-pim-demo</LocURI></Source>
  <Cred>
   <Meta>
    <Format xmlns='syncml:metinf'>b64</Format>
    <Type xmlns='syncml:metinf'>syncml:auth-basic< pe>
   </Meta>
   <Data>Y2hlbmNoZW46MTk4MTA5MTk=</Data>
  </Cred>
 </SyncHdr>
 <SyncBody>
  <Alert>
   <CmdID>1</CmdID>
   <Data>201</Data>
   <Item>
    <Target><LocURI>note</LocURI></Target>
    <Source><LocURI>note</LocURI></Source>
    <Meta>
     <Anchor xmlns="syncml:metinf">
      <Last>1154495887</Last>
      <Next>1154500616</Next>
     </Anchor>
    </Meta>
   </Item>
  </Alert>
  <Final/>
 </SyncBody>
</SyncML>


下一段码,服务器响应
<?xml version="1.0" encoding="UTF-8"?>
<SyncML>
 <SyncHdr>
  <VerDTD>1.1</VerDTD>
  <VerProto>SyncML/1.1</VerProto>
  <SessionID>1</SessionID>
  <MsgID>1</MsgID>
  <Target><LocURI>sc-pim-demo</LocURI></Target>
  <Source><LocURI>http://172.16.204.229:8080/sync4j/sync/db/contact</LocURI></Source>
  <RespURI>http://172.16.204.229:8080/sync4j/sync?sid=LTg0LjE2Li01Mi4tMjctMTE1NDUwMDYyMDU3OA</RespURI>
 </SyncHdr>
 <SyncBody>
  <Status>
   <CmdID>1</CmdID>
   <MsgRef>1</MsgRef>
   <CmdRef>0</CmdRef>
   <Cmd>SyncHdr</Cmd>
   <TargetRef>http://172.16.204.229:8080/sync4j/sync/db/contact</TargetRef>
   <SourceRef>sc-pim-demo</SourceRef>
   <Data>212</Data>
  </Status>
  <Status>
   <CmdID>2</CmdID>
   <MsgRef>1</MsgRef>
   <CmdRef>1</CmdRef>
   <Cmd>Alert</Cmd>
   <TargetRef>note</TargetRef>
   <SourceRef>note</SourceRef>
   <Data>200</Data>
   <Item>
    <Data>
     <Anchor xmlns="syncml:metinf">
      <Next>1154500616</Next>
     </Anchor>
    </Data>
   </Item>
  </Status>
  <Alert>
   <CmdID>3</CmdID>
   <Data>201</Data>
   <Item>
    <Target><LocURI>note</LocURI></Target>
    <Source><LocURI>note</LocURI></Source>
    <Meta>
     <Anchor xmlns="syncml:metinf">
      <Last>1154495887703</Last>
      <Next>1154500620593</Next>
     </Anchor>
    </Meta>
   </Item>
  </Alert>
  <Final></Final>
 </SyncBody>
</SyncML>


以上两个段子表明客户端发出的请求成功的处理了,下一步,客户端开始发送数据
<?xml version="1.0" encoding="UTF-8"?>
<SyncML>
 <SyncHdr>
  <VerDTD>1.1</VerDTD>
  <VerProto>SyncML/1.1</VerProto>
  <SessionID>1</SessionID>
  <MsgID>2</MsgID>
  <Target><LocURI>http://172.16.204.229:8080/sync4j/sync/db/contact</LocURI></Target>
  <Source><LocURI>sc-pim-demo</LocURI></Source>
 </SyncHdr>
 <SyncBody>
  <Status>
   <CmdID>1</CmdID>
   <MsgRef>1</MsgRef>
   <CmdRef>0</CmdRef>
   <Cmd>SyncHdr</Cmd>
   <TargetRef>http://172.16.204.229:8080/sync4j/sync/db/contact</TargetRef>
   <SourceRef>sc-pim-demo</SourceRef>
   <Data>200</Data>
  </Status>
  <Status>
   <CmdID>2</CmdID>
   <MsgRef>1</MsgRef>
   <CmdRef>1</CmdRef>
   <Cmd>Alert</Cmd>
   <TargetRef>note</TargetRef>
   <SourceRef>note</SourceRef>
   <Data>200</Data>
   <Item>
    <Data>
     <Anchor xmlns='syncml:metinf'>
      <Next>1154500616</Next>
     </Anchor>
    </Data>
   </Item>
  </Status>
  <Sync>
   <CmdID>3</CmdID>
   <Target><LocURI>note</LocURI></Target>
   <Source><LocURI>note</LocURI></Source>

   <Replace>
    <CmdID>4</CmdID>
    <Meta>
     <Type xmlns='syncml:metinf'>text/plain</Type>
    </Meta>
    <Item>
     <Source><LocURI>item1</LocURI></Source>
     <Data>This is item One</Data>
    </Item>
    <Item>
     <Source><LocURI>item2</LocURI></Source>
     <Data>This is item Two</Data>
    </Item>
    <Item>
     <Source><LocURI>item3</LocURI></Source>
     <Data>This is item Three</Data>
    </Item>
    <Item>
     <Source><LocURI>item4</LocURI></Source>
     <Data>This is item Four</Data>
    </Item>
   </Replace>
  </Sync>
  <Final/>
 </SyncBody>
</SyncML>
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值