最近一直在做基于 BIM 的云计算相关的事情。很多渠道得知 Autodesk 自己早在两年前已经开始内部进行战略调整,全面拥抱云计算。作为 Autodesk BIM 产品的追随者,自然需要紧跟老大的步伐。
云计算的概念太大,尤其是面向建筑行业这种几乎涉及社会生活所有方面的领域,我的切入点是基于 BIM 模型的运营维保。其中一个很重要的功能就是通过手机向服务器发送多媒体数据。目前流行的技术方案是在服务器端采用 RESTful 方式实现 WebService,之后移动端自行组织 HTTP 数据包向 RESTful 接口发送。
WCF 是微软力推的通讯框架,它能够以 ASP.NET WebService 的方式实现 RESTful 方式的服务。但是缺陷是目前的版本不支持对 HTTP multipart 格式的自动解析。而不像传统的 ASP.NET WebService 可以自动解析 multipart 中的多媒体数据,并通过 Context.Request.Form["name"] 和 Context.Request.Files["name"] 方便地访问。
在网上搜索了不少其他人的代码,发现 HttpMultipartFormDataParser 是比较好的。可以解析由任意数量的多媒体文件和文本信息组成的 HTTP 包。唯一的缺陷是处理中文时出现乱码。因为作者是老外,不需要处理非罗马字符。
经过一些调试,在这份代码的基础上解决了中文乱码的问题。现在和大家分享一下,希望给和我一样被这个问题困扰,但是又希望将通讯模型统一到 WCF 框架的朋友一些帮助。