现在好多社区网站都提供导入邮箱或msn联系人到网站上,其中导入hotmail联系人最为复杂,本文介绍用HttpClient模拟浏览器登录的方式,获取hotmail联系人,当然你也可以用msn api去获取,但那样会造成用户的MSN下线,通过邮箱的方式可以支持hotmail.com,msn.com,live.cn,live.com。
第一步,用HttpClient访问http://login.live.com/login.srf?id=2,这个页面会返回一个登录表单
第二步,解析出form中所有的隐含变量和form的action,这些变量是你必须要通过httpClient Post回去,hotmail服务器会验证这些参数,另外,你还必须传递一个PwdPad变量,它的值是IfYouAreReadingThisYouHaveTooMuchFreeTime 从后面截取登录密码长度的值,比如你的密码是123,则PwdPad的值是IfYouAreReadingThisYouHaveTooMuchFreeT
第三、为了知道你接下来导向的地址,你必须解析服务器给你返回的脚本,其中relpace("***")中的***即为重定向的地址
第四、得到上一步重定向后的真实的主机地址,联系人列表页面的具体地址就是http://+ hostAddress + /mail/GetContacts.aspx
第五、用正则表达式解析此页面即可
具体代码参见此处