為什麼要拿新浪開刀呢?它是我在做模擬登錄過程中非常難啃的骨頭,相信各位也碰到了這樣問題。所以今天就跟各位一起分析一下這個硬骨頭。
以前的很多關於新浪登錄的大半都是python語言的,這兒,我來個C#的。不知道各位是否給面兒啊。
1、首先使用http協議的分析工具,查看浏覽器跟服務器之間的交互是怎麼樣的?這裡推薦用httpwatch,fiddler2等工具。然後就使用浏覽器登陸吧,經過查看,這個登錄過程基本有4、5次請求,這樣頻繁的請求,用於在登陸過程上,可算是用心良苦啊。其中黃色的就是請求的關鍵點。
這條請求,點擊Raw之後,發現了他post出去的各種參數。
運行上述代碼,就會獲取到您的郵箱地址,格式如:"nongchuang055201%40sina.cn"
其中的@,被替換為了%40所以您用@傳入,得到的總不是它的真正的值。
2、注意看這個過程,如果遇到返回4049,那麼說明需要輸入驗證碼。
1、get http://login.sina.com.cn/sso/prelogin.php?entry=boke&callback=sinaSSOController.preloginCallBack&su=bm9uZ2NodWFuZzA1NTIwMSU0MHNpbmEuY24%3D&rsakt=mod&client=ssologin.js(v1.4.11)&_=1377775419738
su是加密過的,需要處理一下。
2、post http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.11)
替換其中的postdata的各種參數即可。
返回retcode :0,就代表成功了。