http://shenwufzwp.cccpan.com/ 登陆密码:swfz这个是 永硕E盘 网站!想实现自动登陆功能!但是Post了一个晚上也没整上去,不知道是为什么!还请各位大神帮帮,谢谢啦!procedure TForm1.Button1Click(Sender: TObject);
Var
resParams: TStringStream;
PostParams: TStringList;
begin
resParams := TStringStream.Create('');
PostParams := TStringList.Create;
IdHTTP1.Request.Accept := 'application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*';
IdHTTP1.Request.AcceptEncoding := 'gzip, deflate';
IdHTTP1.Request.AcceptLanguage := 'zh-cn';
IdHTTP1.Request.CacheControl := 'no-cache';
IdHTTP1.Request.Connection := 'Keep-Alive';
IdHTTP1.Request.ContentLength := 464;
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
PostParams.Add('teqtbz=swfz');
IdHTTP1.Post('http://shenwufzwp.cccpan.com/login.aspx?d=shenwufzwp', PostParams, resParams);
Memo1.Lines.Add(resParams.DataString);
end;这是我的代码!我就30分!还望各位大神帮下忙撒!我努力回帖赚点分再加
Var
resParams: TStringStream;
PostParams: TStringList;
begin
resParams := TStringStream.Create('');
PostParams := TStringList.Create;
IdHTTP1.Request.Accept := 'application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*';
IdHTTP1.Request.AcceptEncoding := 'gzip, deflate';
IdHTTP1.Request.AcceptLanguage := 'zh-cn';
IdHTTP1.Request.CacheControl := 'no-cache';
IdHTTP1.Request.Connection := 'Keep-Alive';
IdHTTP1.Request.ContentLength := 464;
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
PostParams.Add('teqtbz=swfz');
IdHTTP1.Post('http://shenwufzwp.cccpan.com/login.aspx?d=shenwufzwp', PostParams, resParams);
Memo1.Lines.Add(resParams.DataString);
end;这是我的代码!我就30分!还望各位大神帮下忙撒!我努力回帖赚点分再加
aStr: string;
aStrstrean: TStringStream;
begin
aStr := 'http://shenwufzwp.cccpan.com/login.aspx?d=shenwufzwp&teqtbz=swfz';
aStrstrean := TStringStream.Create('', TEncoding.UTF8);
try
IdHTTP1.Get(IdHTTP1.URL.URLEncode(aStr), aStrstrean);
aStr := aStrstrean.DataString;//返回值
finally
FreeAndNil(aStrstrean);
end;
2 考虑cookie的问题
464 是抓宝得来的我想来想去,还是不知道那不对,不过我对http协议不是太懂哈
__VIEWSTATE=%2FwEPDwUJODk2MjkyOTMzD2QWAmYPZBYIZg8PFgIeBFRleHQFFXNoZW53dWZ6d3AuY2NjcGFuLmNvbWRkAgEPDxYCHwAFCnNoZW53dWZ6d3BkZAIFDw8WAh8ABQbnmbvpmYZkZAIGDw8WAh8ABU%2FlrqLmnI1RUe%2B8muacquiuvue9ruOAgjxhIGhyZWY9J2xvZ2luX3FxLmFzcHg%2FZGxtYz1zaGVud3VmendwJz7ngrnmraTorr7nva48L2E%2BZGRkMm5EdFGmsB96XlAKD6rPDr5Z0fM6pYtaprMljPbiYtM%3D&__EVENTVALIDATION=%2FwEWBALI6KrmDgK5v9XxBQLck8KHCQK0mcHoBaqPliWYbnTsgRlJd1XzCdttqi2EdDzuAS89Fb7OcExc&teqtbz=swfz&teqtbz1=&b_dl=%B5%C7%C2%BD
http://shenwufzwp.cccpan.com/login.aspx?d=shenwufzwp
读取表单name="__VIEWSTATE"和name="__EVENTVALIDATION"的值
再加上密码提交
__VIEWSTATE=值&__EVENTVALIDATION=值&b_dl=登陆&teqtbz=密码&teqtbz1=密码本人没有测试过,只是在浏览器里看了一下登录页面
2、GET登录地址:http://shenwufzwp.cccpan.com/login.aspx?d=shenwufzwp把以下两个值取出来__VIEWSTATE,__EVENTVALIDATION
html如下:
id="__VIEWSTATE" value="/wEPDwUJODk2MjkyOTMzD2QWAmYPZBYIZg8PFgIeBFRleHQFFXNoZW53dWZ6d3AuY2NjcGFuLmNvbWRkAgEPDxYCHwAFCnNoZW53dWZ6d3BkZAIFDw8WAh8ABQbnmbvpmYZkZAIGDw8WAh8ABU/lrqLmnI1RUe+8muacquiuvue9ruOAgjxhIGhyZWY9J2xvZ2luX3FxLmFzcHg/ZGxtYz1zaGVud3VmendwJz7ngrnmraTorr7nva48L2E+ZGRkMm5EdFGmsB96XlAKD6rPDr5Z0fM6pYtaprMljPbiYtM=" />
id="__EVENTVALIDATION" value="/wEWBALI6KrmDgK5v9XxBQLck8KHCQK0mcHoBaqPliWYbnTsgRlJd1XzCdttqi2EdDzuAS89Fb7OcExc" 3、再POST,POST的时候是有5个参数,你提交的时候才一个参数怎么会成功。参数1 __VIEWSTATE
参数2 __EVENTVALIDATION 参数3 teqtbz
参数4 teqtbz1
参数4 b_dl
__EVENTVALIDATION /wEWBALI6KrmDgK5v9XxBQLck8KHCQK0mcHoBaqPliWYbnTsgRlJd1XzCdttqi2EdDzuAS89Fb7OcExc
teqtbz swfz
teqtbz1
b_dl 登陆
有这么多参数,你才给出一个,当然登录不上去了。
用 HttpAnalyzerStdV7.exe 抓包吧。
String url = "http://shenwufzwp.cccpan.com";
//获取表单页面
Document doc = Jsoup.connect(url).get();
Map<String, String> data = new HashMap<String, String>();
Elements inputs = doc.select("input");
for (Element item : inputs) {
if ("password".equals(item.attr("type"))) {
//如果是密码则赋值
data.put(item.attr("name"), "swfz");
} else {
//其他原样提交
data.put(item.attr("name"), item.val());
}
}
//获取提交路径
String act = doc.select("form").attr("abs:action");
//提交组织好的数据
doc = Jsoup.connect(act).data(data).post();
System.out.println(doc.html());
}