对于58同城自动登陆的补充【主要是代码】
生活随笔
收集整理的這篇文章主要介紹了
对于58同城自动登陆的补充【主要是代码】
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
http://blog.csdn.net/silence1214/article/details/6694373
http://blog.csdn.net/silence1214/article/details/6659742
?
看到有朋友回復(fù)評(píng)論不知道如何利用上一篇我的寫(xiě)的58同城的登陸,我在這里把代碼給大家看下吧,我封裝好的工具類(lèi):我的操作思路是這樣子的。因?yàn)槲沂窃趙inform里面坐的程序,之前沒(méi)有用WebBrowser組件,一直用的HttpWebrequest,但是這個(gè)js的話(huà),只有利用webBrowser來(lái)進(jìn)行了。大體思路就是1:用WebBrowser來(lái)加載這個(gè)js,這個(gè)js我下載到了本地2:根據(jù)對(duì)應(yīng)的函數(shù)來(lái)進(jìn)行調(diào)用。
[csharp] view plaincopyprint??
using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms;namespace PostApplication.core.util {/// <summary>/// 58.com的post工具類(lèi)的工具類(lèi)/// 通過(guò)加載js文件獲得對(duì)前端密碼的處理/// </summary>class Post58comUtil{String filePath = AppDomain.CurrentDomain.BaseDirectory + @"file\cd58.html";private String password; // 需要進(jìn)行處理的密碼private long timesign;public Post58comUtil(String password, long timesign){this.password = password;this.timesign = timesign;}/// <summary>/// 初始化時(shí)間戳/// </summary>private void InitializeTimesign(){DateTime d1 = DateTime.Now.AddHours((double)(-8));DateTime d2 = new DateTime(1970, 1, 1);long d = (long)d1.Subtract(d2).TotalMilliseconds;this.timesign = d;}public delegate String getm32strDelegate();public String get32strOri(){object obj = MainForm.browser.Document.InvokeScript("getm32str", new object[] { password, timesign + ""});return obj + "";}/// <summary>/// 32str加密/// </summary>/// <returns></returns>public String getm32str(){if (MainForm.browser.InvokeRequired){getm32strDelegate g = new getm32strDelegate(get32strOri);object obj = MainForm.browser.Invoke(g);return obj + "";}else{return get32strOri();}}public delegate String getm16strDelegate();public String get16strOri(){object obj = MainForm.browser.Document.InvokeScript("getm16str", new object[] { password, timesign + "" });return obj + "";}/// <summary>/// 16str加密/// </summary>/// <returns></returns>public String getm16str(){if (MainForm.browser.InvokeRequired){getm16strDelegate g = new getm16strDelegate(get16strOri);object obj = MainForm.browser.Invoke(g);return obj + "";}else{return get16strOri();}}} }
調(diào)用方法:
?
?
[csharp] view plaincopyprint??
// 獲取時(shí)間戳DateTime d1 = DateTime.Now.AddHours((double)(-8));DateTime d2 = new DateTime(1970, 1, 1);long d = (long)d1.Subtract(d2).TotalMilliseconds;Post58comUtil util = new Post58comUtil(loginUserPassword, d);
那么16str和32str都可以調(diào)用了。。
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/l1b2q31/articles/2767273.html
總結(jié)
以上是生活随笔為你收集整理的对于58同城自动登陆的补充【主要是代码】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Google App Engine平台下
- 下一篇: [BTS] Could not find