現在好多社區網站都提供導入郵箱或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
第五、用正則表達式解析此頁面即可
具體代碼參見此處