Elizabeths 2016-08-18 02:49 采纳率: 80%
浏览 962
已采纳

模拟登录,网站源码里面有几个隐藏的input流水号,获取到模拟post请求就是登录不了。

private string getMatch(string text, Regex reg)
{
Match mBody = reg.Match(text);
return mBody.Value;
}
private void btnLogin_Click(object sender, EventArgs e)
{
HttpClient httpClient = new HttpClient();
httpClient.MaxResponseContentBufferSize = 256000;
httpClient.DefaultRequestHeaders.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
string url = "http://ehire.51job.com/MainLogin.aspx";
HttpResponseMessage response = httpClient.GetAsync(new Uri(url)).Result;
string result = response.Content.ReadAsStringAsync().Result;
string ctmName = "会员名";
string userName = "账号";
string password = "密码";
string checkCode = string.Empty;
string isRememberMe = "false";
string returl = string.Empty;
Regex reg = new Regex(@"(?<=id=""hidLangType"" value="").*(?="")");
Regex reg1 = new Regex(@"(?<=id=""hidAccessKey"" value="").*(?="")");
Regex reg2 = new Regex(@"(?<=id=""fksc"" value="").*(?="")");
Regex reg3 = new Regex(@"(?<=id=""hidEhireGuid"" value="").*(?="")");
string langtype = getMatch(result, reg);
string oldAccessKey = getMatch(result, reg1);
string sc = getMatch(result, reg2);
string ec = getMatch(result, reg3);
HttpContent postContent = new FormUrlEncodedContent(new Dictionary()
{
{"ctmName", ctmName},
{"userName", userName},
{"password", password},
{"checkCode", checkCode},
{"oldAccessKey", oldAccessKey},
{"langtype", langtype},
{"isRememberMe", isRememberMe},
{"sc", sc},
{"ec", ec},
{"returl", returl}
});
response = httpClient.PostAsync(new Uri(url), postContent).Result
result = response.Content.ReadAsStringAsync().Result;
txtResult.Text = result;
httpClient.Dispose();
}
一直停留在登陆页面进不了后面,怎么解决啊?

  • 写回答

1条回答 默认 最新

  • 泰 戈 尔 博客专家认证 2016-08-18 03:01
    关注

    你好,类似情况流水号每次调用都是不一样的,对应的我们可以在其JavaScript的处理中找得到。
    类比于CSDN登陆的时候所需的流水号,就是使用JS控制的,这里仅仅是给你一个思路吧,希望对你有用:-)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。