网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

浅谈ASP.NET核心对象

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/07
务端的实现:创建一个QueryOrderService.ashx,具体实现代码如下:

  1. public class QueryOrderService : IHttpHandler  
  2. {  
  3. public void ProcessRequest(HttpContext context)  
  4. {  
  5. context.Response.ContentType = "application/json";  
  6. string input = null;  
  7. JavaScriptSerializer jss = new JavaScriptSerializer();  
  8. using( StreamReader sr = new StreamReader(context.Request.InputStream) ) {  
  9. input = sr.ReadToEnd();  
  10. }  
  11. QueryOrderCondition query = jss.Deserialize<QueryOrderCondition>(input);  
  12. // 模拟查询过程,这里就直接返回一个列表。  
  13. List<Order>list = new List<Order>();  
  14. forint i = 0;i <10;i++ )  
  15. list.Add(DataFactory.CreateRandomOrder());  
  16. string json = jss.Serialize(list);  
  17. context.Response.Write(json);  

代码很简单,经过了以下几个步骤:

1. 从Request.InputStream中读取客户端发送过来的JSON字符串,

2. 反序列化成需要的输入参数,

3. 执行查询订单的操作,生成结果数据,

4. 将结果做JSON序列化,转成字符串,

5. 写入到响应流。

很简单吧,我可以把它看作是一个服务吧,但它没有其它服务框架的种种约束,而且相当灵活,比如我可以让服务采用GZIP的方式来压缩传输数据:

  1. public void ProcessRequest(HttpContext context)  
  2. {  
  3. context.Response.ContentType = "application/json";  
  4. string input = null;  
  5. JavaScriptSerializer jss = new JavaScriptSerializer();  
  6. using( GZipStream gzip = new GZipStream(context.Request.InputStream, CompressionMode.Decompress) ) {  
  7. using( StreamReader sr = new StreamReader(gzip) ) {  
  8. input = sr.ReadToEnd();  
  9. }  
  10. }  
  11. QueryOrderCondition query = jss.Deserialize<QueryOrderCondition>(input);  
  12. // 模拟查询过程,这里就直接返回一个列表。  
  13. List<Order>list = new List<Order>();  
  14. forint i = 0;i <10;i++ )  
  15. list.Add(DataFactory.CreateRandomOrder());  
  16.  string json = jss.Serialize(list);  
  17. using( GZipStream gzip = new GZipStream(context.Response.OutputStream, CompressionMode.Compress) ) {  
  18. using( StreamWriter sw = new StreamWriter(gzip) ) {  
  19. context.Response.AppendHeader("Content-Encoding""gzip");  
  20. sw.Write(json);  
  21. }  
  22.  }  

修改也很直观,在输入输出的地方,加上Gzip的操作就可以了。

如果您想加密传输内容,也可以在读写之间做相应的处理,或者,想换个序列化方式,也简单,我想您应该懂的。

总之,如何读写数据,全由您来决定。喜欢怎样处理就怎样处理,这就是自由。

不仅如此,我还可以让服务端判断客户端是否要求使用GZIP方式来传输数据,如

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号