国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#使用ImitateLogin模擬登錄百度

2020-01-24 01:20:47
字體:
供稿:網(wǎng)友

在之前的文章中,我已經(jīng)介紹過一個社交網(wǎng)站模擬登錄的類庫:imitate-login ,這是一個通過c#的HttpWebRequest來模擬網(wǎng)站登錄的庫,之前實現(xiàn)了微博網(wǎng)頁版和微博Wap版;現(xiàn)在,模擬百度登錄的部分也已經(jīng)完成。由于個人時間的限制,加上目前有多個項目在同時進行,因此更新頻率會根據(jù)項目關(guān)注度來決定(Star & fork)。

這個類庫的使用方法非常簡單,僅對外提供一個方法:

LoginResult Login(1: string userName, 2: string password, 3: LoginSite loginSite); 

這個方法位于ImitateLogin的LoginHelper類中,使用之前需要先對其進行實例化。通過傳入 用戶名、密碼以及登錄的網(wǎng)站,返回一個包含登錄結(jié)果狀態(tài)、描述信息和Cookies字典的類。它通過 Thrift 來實現(xiàn)多語言的支持。

下面將通過介紹模擬百度登錄的實現(xiàn)來介紹如何進行擴充與二次開發(fā):

首先,創(chuàng)建百度登錄類 BaiduLogin.cs 繼承 ILogin 接口;實現(xiàn)其生成的 DoLogin 方法。

#region ILogin implementationpublic LoginResult DoLogin(string UserName, string Password){  throw new NotImplementedException();}public CookieContainer cookies { set; get;}#endregion 

然后我們通過監(jiān)聽百度登錄過程中的網(wǎng)絡(luò)請求,梳理出修改過Cookies和最終提交登錄所需的參數(shù)的請求。

Step1: 訪問以下鏈接生成初始Cookies:

HttpHelper.GetHttpContent("

Step2: 獲取最終登錄提交所需的token:

其中 build_callback 為隨機生成6位字母或數(shù)字的組合的方法。

Step3: 獲取用于加密密碼的publickey:

stopwatch 是一個記錄從最初執(zhí)行到最終提交之前的耗時的一個計時器,get_pwa_rsa 為加密密碼的方法。

Step4: 模擬執(zhí)行最終的登錄:

Step5:驗證最終的登錄結(jié)果:

Step6:創(chuàng)建返回結(jié)果類:

至此,模擬登錄部分的代碼就完成了,為了能夠被其它程序調(diào)用,你還需要在 LoginSite 的枚舉中新增一條來標識這個登錄方法,此處增加了一個 Baidu = 5,并設(shè)置 [Description(“Baidu”)]。

然后在 LoginHelper.cs 的 Login 方法中的 switch (loginSite) 里增加一個 case:

以上內(nèi)容是武林網(wǎng)小編給大家介紹的C#使用ImitateLogin模擬登錄百度的全部敘述,希望大家喜歡。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁国市| 从江县| 通江县| 合山市| 阜平县| 肥西县| 安义县| 大关县| 株洲县| 巫溪县| 九龙城区| 惠东县| 尉犁县| 正安县| 会理县| 龙游县| 莱阳市| SHOW| 沂南县| 元江| 郓城县| 江门市| 青浦区| 安溪县| 甘肃省| 博白县| 惠水县| 淮滨县| 沅江市| 三明市| 安泽县| 余庆县| 铜山县| 临潭县| 沙洋县| 隆昌县| 扎赉特旗| 大冶市| 黄冈市| 天全县| 南昌县|