通过winform+模拟登录实现快速一键登录到人才招聘网站
最编程
2024-01-04 16:13:23
...
public
class
HttpLoginCjolHelper
{
private
static
readonly
CodeDomProvider _provider =
new
Microsoft.JScript.JScriptCodeProvider();
private
CookieContainer cjolCookies =
new
CookieContainer();
public
string
Login(
string
loginName,
string
loginPassword)
{
string
validateCode, codekey;
validateCode = GetValidateCode(
out
codekey);
if
(
string
.IsNullOrEmpty(validateCode))
return
null
;
var
rs = HttpPost(
"http://newrms.cjol.com/Account/HrLogin"
,
new
Dictionary<
string
,
object
> {
{
"r_u_name"
, loginName }, {
"r_p_word"
, loginPassword },
{
"r_v_code"
, validateCode },{
"r_v_codekey"
, codekey }
});
string
newUrl = rs.Headers[
"Location"
].ToString();
if
(newUrl.IndexOf(
"/Default"
) < 0 && newUrl.IndexOf(
"message"
) > 0)
{
string
pattren =
"(?<=message=).+$"
;
var
regx =
new
System.Text.RegularExpressions.Regex(pattren);
string
errMsg = regx.Match(newUrl).Value;
return
Uri.UnescapeDataString(errMsg);
}
//if (!newUrl.StartsWith("http://" + rs.ResponseUri.Host))
//{
// newUrl = string.Format("http://{0}{1}", rs.ResponseUri.Host, newUrl);
//}
newUrl =
"http://newrms.cjol.com/searchengine"
;
//var jr = GetResponseContent(rs);
BaseUtil.OpenAdminPage(cjolCookies,
new
Uri(newUrl));
return
null
;
}
private
HttpWebResponse HttpPost(
string
url, Dictionary<
string
,
object
> postData)
{
string
desKey =
"!@#$%26)(*&^cjol<16>:|}{=-/*-+.CJOL@*&^%*()*<299>"
;
string
logindataVal = HttpLoginCjolHelper.JScriptRun(
"jsencrypt"
, desKey, JsonConvert.SerializeObject(postData)).ToString();
//DesEncrypt(desKey, JsonConvert.SerializeObject(postData));
string
postDataContent =
"logindata="
+ logindataVal;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method =
"POST"
;
request.ContentType =
"application/x-www-form-urlencoded"
;
byte
[] data = Encoding.UTF8.GetBytes(postDataContent);
request.ContentLength = data.Length;
request.AllowAutoRedirect =
false
;
request.CookieContainer = cjolCookies;
//request.Accept = "application/json";