惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
Martin Fowler
Martin Fowler
Last Week in AI
Last Week in AI
罗磊的独立博客
阮一峰的网络日志
阮一峰的网络日志
博客园 - 【当耐特】
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
V
Visual Studio Blog
Hugging Face - Blog
Hugging Face - Blog
雷峰网
雷峰网
博客园_首页
人人都是产品经理
人人都是产品经理
量子位
美团技术团队
The Cloudflare Blog
小众软件
小众软件
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
D
DataBreaches.Net
博客园 - Franky

博客园 - Jailu

如何在IIS5.1/IIS6.0上使用ASP.NET URL Routing 如何在Web Form中使用URL Routing? Linq to SQLite使用笔记 Response.ContentType 详细列表 如何利用Google Code的SVN显示Html页面 Windows7下IIS7的安装及ASP配置方法 [原]分享几个日常开发中经常用到的软件 ASP.NET中Cookie问题求教 解决FF中的bug:JavaScript focus() throws "Permission denied to get property XULElement.selectedIndex" [原]请留心asp:Image控件中的ImageUrl属性 开心网辅助程序--开心网争车位助手正式发布(含源码) 开心网辅助程序开发手记(四):贴条功能+逻辑停车+简单界面 开心网辅助程序开发手记(三):实现停车功能 HTML:对话框插件thickbox使用技巧 - Jailu - 博客园 开心网辅助程序开发手记(二):获取好友私家车位信息 [程序收藏]把Unicode转成汉字 原来.NET Framework 2.0也是支持母版页嵌套的 Fire event in IE & Firefox 【转】FireFox与IE开发上的一些区别
开心网辅助程序开发手记
Jailu · 2008-12-06 · via 博客园 - Jailu

《开心网辅助程序开发手记》 系列导读:

开心网辅助程序开发手记

开心网辅助程序开发手记(二):获取好友私家车位信息

开心网辅助程序开发手记(三):实现停车功能 

开心网辅助程序开发手记(四):贴条功能+逻辑停车+简单界面 

开心网辅助程序--开心网争车位助手正式发布(含源码) 

  声明:本人只在业余空闲时间写写《开心网辅助程序》,目的只是学习!

    由于之前有写过类似的程序,也写过相关的文章介绍过(C#网站登录学习笔记(一):登录简单网站C#网站登录学习笔记(二):访问需登录后才能访问的页面),这次写起“开心网辅助程序”也可以算是得心应手了,直接从电脑中翻出尘封已久的HttpHelper(前面提到的两篇文章就是居于这个操作类进行的),稍微分析了一下网页结构(争车位),就写起程序来了!

    在开始写手记前,让我们看看写这样的“外挂”程序需要准备什么软件?

    1. 抓包工具:Http Analyzer V3。既然要实现的是Http模拟请求,抓包工具肯定少不了了

    2. 网页分析工具:Firefox 3.0 + Firebug 1.2.1。没错,可爱的火狐狸又来帮忙了

    在这篇手记中,将简单的介绍一下如何登录开心网、获取争车位相关数据。

    一、稍微修改了一下HttpHelper类的代码:

Code

    二、登录《开心网(http://www.kaixin001.com)》

      首页找到《开心网》的登录页面,本人用的是http://www.kaixin001.com/login/index.php,打开Http Analyzer V3,选中Firefox进程,启动监听。然后再登录页面中登录,打开Http Analyzer查看监听数据,一看吓一跳--诺大的开心网,登录页面居然没做一点验证?!不过这样也好,为我们这些还心眼的提供了方便。

    下面就是简单的登录程序:

Code

    三、访问“争车位”页面,获取相关数据

      用Http Analyzer监听发现,打开“争车位”页面,“开心网”依旧没给我们出任何难题,只有带上登录时的Cookie就能直接访问到“争车位”页面(http://www.kaixin001.com/app/app.php?aid=1040)

Code

      这么轻易就来到“争车位”页面了,赶紧打开网页源码分析一下,咱得赶紧找出“我的汽车”里的汽车对吧?

      打开源码,Ctrl + F,查找“我的汽车”

      嘿,在源码里居然没发现“我的汽车”信息,真是失望!慢着,“我的汽车”不会藏在setMyCar();方法里吧?找找看!返回Firefox,按下F12,请出我们的大侠Firebug,让它帮忙找找。

     能熟练使用Firebug的朋友,相信你一下子就找到数据了吧,那我给其他还没找到的朋友一点提醒:setMyCar()方法在parking-7.js里呢,但是数据却在app.php?aid=1040中的v_userdata变量中呢!

    提示:当选择Script选项卡时,可用鼠标单击红框部位。有什么用?你点了吗?你没点怎么知道呢?

    仔细一看,乖乖,原来是JSON啊,本人之前只了解过,但不清楚如何使用。得,现学吧。以下是本人搜索到的一些资源,供和我一样不了解JSON的朋友参考:

    http://www.json.org/

    http://james.newtonking.com/projects/json-net.aspx

    http://www.ibm.com/developerworks/cn/web/wa-lo-json/?ca=drs-tp3308

    经过简单的了解后,本人选择了Json.NET来操作JSON。PS:Json.NET下载地址:http://www.codeplex.com/Json,.NET Framework 2.0的请下载Json.NET 1.3.1;最新版本的Json.NET 3.5需要.NET Framework 3.5的支持。

   Newtonsoft.Json.JavaScriptConvert.DeserializeObject方法可用来把JSON字符串转成实体,你只需根据JSON的结构,拼出正确的实体就可以简单的使用该方法把JSON字符串转成对应的实体。如何查看JSON的结构呢?由于本人之前为曾使用过JSON,目前只发现在Http Analyzer V3中,Tools/JSON Viewer可用来查看JSON结构(若您有更好的工具,请您推荐给我)

    上图所示的是v_userdata变量中JSON的树状结构。

    通过分析,v_userdata中包含了用户基本信息(user)、用户车位的停车情况(parking)、用户汽车情况(car);v_frienddata中包含了好友信息。

    由于这块的代码量比较庞大,就不在帖子中展示了,有兴趣的朋友可以自行查看本文附带的源码。

上图是源码结构截图,目前只实现了登录开心网、获取争车位相关数据的功能。

HttpHelper.cs:该类封装了访问网页数据的方法

Kaixin001/Entity:该目录下存放的是开发中使用到的实体

Utility.cs:一些常用的方法

ParkingHelper.cs:和“争车位”相关的方法

SNSHelper_UnitTest:单元测试相关。目前源码只是一个类库

由于本人能力有限,贴出程序只是希望能帮到那些对这方面开发有兴趣的朋友。若您对程序有什么看法,欢迎您和我交流!

点击下载源码