1. POST Request

数据格式

Request-line
Request-headers
CR/LF
Request Body

Request-line

POST <URI> HTTP/1.1

/Microsoft-Server-ActiveSync?<text query value>
/Microsoft-Server-ActiveSync?<base64-encoded query value>

 

base64加密的URI组织方式

长度
协议版本 1字节 141,可能140、120
命令编号 1字节  
Locale 2字节 应当所使用的语言
设备编号的长度 1字节  
设备编号 若干 String或者GUID
策略key的长度 1字节 0or4,0表示缺省
策略key 4字节 可选项
设备类型的长度 1字节 描述设备类型字段的长度
设备类型 若干 string
命令参数 若干 加密参数结构序列

加密参数

长度
Tag 1字节 参考targs表
Length 1字节 参数的长度
Value 若干 参数内容

 

Request Headers

Header 必须的 描述
Authorization 必须 描述用户证书,使用HTTP基本认证
Content-Type 据命令而定 WBXML:application/vnd.ms-sync.wbxml或者application/vnd.ms-sync
Autodiscover:text/xml或者text/html
MS-ASAcceptMultiPart 非必须 允许拆分
MS-ASProtocolVersion 使用纯文本查询时必须,Base64时不需要 表示客户端支持的ActiveSync协议版本
User-Agent 非必须 客户端的描述信息
X-MS-PolicyKey 使用纯文本查询时必须,Base64时不需要 客户端当前使用的策略key

2. POST Response

数据格式

Status-line
Response-headers
CR/LF
Message Body

 

状态码

状态码 描述
200 OK 命令成功
400 Bad Request 语法错误,服务器无法解析。如果客户端没有修改的情况下,继续请求,将发生同样的错误。
401 Unauthorized 要求认证或者认证过期
403 Forbidden 用户不能进行ActiveSync同步
404 Not Found URI找不到或者服务器上的ActiveSync不支持。
451 Redirect 设备连接的服务器无法访问用户邮箱,或者有一个可以直接访问用户邮箱的服务器,要求重定向
500 Internal Server Error 服务器发生错误,正在阻止请求
502 Proxy Error 找不到服务器
503 Service Unavailable 服务不可用。
507 Insufficient Disk Space 用户邮箱已满

 

ResponseHeaders

Header 例子值 描述
Cache-Control private 控制应答的缓存策略
Content-Encoding gzip 当内容压缩时,必须的;否则不带着个头
Content-Length 56 必须。描述响应提的大小(字节)
Content-Type application/vnd.ms-sync.wbxml 内容类型
MS-Server-ActiveSync 8.1 可选。描述处理请求的ActiveSync协议版本
X-MS-Location   可选。同451响应一起使用。描述新的URL
X-MS-RP 12.1,14.0, 14.1 可选。由于服务器已经升级,指示客户端进行完全同步

ActiveSync中的http内容组织的更多相关文章

  1. PHP获取目录中的全部内容RecursiveDirectoryIterator

    这次我们来介绍一个SPL库中的目录迭代器,它的作用其实非常简单,从名字就可以看出来,就是获取指定目录下的所有内容.之前我们要遍历目录获取目录及目录下的所有文件一般是需要进行递归遍历的,自己写这个代码说 ...

  2. mailto实现将用户在网页中输入的内容传递到本地邮件客户端

    背景: 想在自己的网站中有这样一个设计: 用户点击提交按钮之后,就会打开本地邮件客户端,并自动将他在输入框中输入的内容作为邮件的内容,像下面这样: mailto可以帮助实现这个功能. 简介: mail ...

  3. s:textarea中的文本内容在什么时候才能被赋值给Action中的属性?

    下面是jsp程序片段: <s:form id="startForm" name ="startForm" action="/hall/hall_ ...

  4. excel表格中如何将内容粘贴到筛选后的可见单元格[转]

    默认情况下,筛选后excel表格进行复制粘贴,会贴到隐藏的表格. 可以添加两个辅助列来完成操作:1.在筛选前在表格右边添加"辅助1"列,在第二行输入1,按Ctrl+鼠标左键往下拉到 ...

  5. angularjs表达式中的HTML内容,如何不转义,直接表现为html元素

    在模板中直接: 在ionic中直接使用: <p class="contentwen" ng-bind-html="detial.content">& ...

  6. mysql “group by ”与"order by"的研究--分类中最新的内容

    这两天让一个数据查询难了.主要是对group by 理解的不够深入.才出现这样的情况这种需求,我想很多人都遇到过.下面是我模拟我的内容表我现在需要取出每个分类中最新的内容 select * from ...

  7. Liferay 6.2 改造系列之三:删除Docbar中的添加内容功能

    在/portal-master/portal-web/docroot/html/portlet/dockbar/add_panel.jsp文件中 将以下内容: if (hasAddContentAnd ...

  8. .net获取select控件中的文本内容

    .net获取select控件中的文本内容 2009-11-28 21:19小V古 | 分类:C#/.NET | 浏览1374次 <select id="SecType" st ...

  9. Android TextWatcher监控EditText中的输入内容并限制其输入字符个数

    布局中EditText在android布局中经常用到,对EditText中输入的内容也经常需要进行限制,我们可以通过TextWatcher去观察输入框中输入的内容,作个笔记. 主布局: <?xm ...

随机推荐

  1. HDU 4612 Warm up 连通图缩点

    题目大意:给出一个连通图,求再一个边后,剩余的最少桥数. 题目思路:首先进行缩点得到重构后的图,求出重构后树的直径(通过两次BFS求出相距最远的两点间的距离),ans=重构图边数-树的直径 //#pr ...

  2. 【NLP CS224N笔记】Lecture 3 GloVe: Global Vectors for Word Representation

    I. 复习word2vec的核心思路 1. Skip-gram 模型示意图: 2.word vectors的随机梯度 假设语料库中有这样一行句子: I love deep learning and N ...

  3. hibernate 嵌套事务

    hibernate 嵌套事务,多线程调试.问题麻烦啊,后续有时间补全.

  4. java jvm和android DVM区别

      本文转自:http://blog.csdn.net/yujun411522/article/details/45932247   1.Android dvm的进程和Linux的进程, 应用程序的进 ...

  5. Zookeeper学习笔记4

    开源客户端 ZkClient <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId ...

  6. canves绘制北京地铁线路图,包括线路绘制,优先路线,单路径选择。

    canves绘制北京地铁线路图,包括线路绘制,优先路线,单路径选择. 即将推出,后台涵盖各种语言,php,C#,java,nodejs等.

  7. JavaScript拼接html字符串时截断问题

    在项目中碰到一个问题,就是JavaScript拼接html标签时,里面特殊字符会有些问题,比如单引号截断配对,导致后面的内容不显示或显示错误.在此记录一下. 下面贴一段简化的代码,若有描述不清的地方还 ...

  8. AIX系统下sed的用法与实例——查询/打印/替换字符串并生成文件/删除

    sed是AIX中非常重要的文本流编辑器,它对输入的文本进行查询/打印/替换/删除等操作,并将结果写到标准输出.sed 命令包含很多功能,用于选择要修改的行,并只对选择的行作更改. 首先,使用sed命令 ...

  9. 设计模式--观察者模式Observer(对象行为型)

    一.观察者模式 观察者模式是在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新.观察者模式也被称之为:主题-观察者模式,发布-订阅模式,前者是一,后者是多. ...

  10. JAVA中获取键盘输入的方法总结

    Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!下面介绍三种解决方法: 方法一: ...