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分!還望各位大神幫下忙撒!我努力回帖賺點分再加
uj5u.com熱心網友回復:
varaStr: 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;
uj5u.com熱心網友回復:
這個測驗不行阿老大!
uj5u.com熱心網友回復:
錯了,這個測驗不行阿老大!
uj5u.com熱心網友回復:
1 ContentLength很明顯不是464,如果這個引數你是照著抓包寫的,那就是post的內容不對2 考慮cookie的問題
uj5u.com熱心網友回復:
464 是抓寶得來的
我想來想去,還是不知道那不對,不過我對http協議不是太懂哈
uj5u.com熱心網友回復:
ContentLength是post的資料的長度,有這么多資料,怎么可能對?__VIEWSTATE=%2FwEPDwUJODk2MjkyOTMzD2QWAmYPZBYIZg8PFgIeBFRleHQFFXNoZW53dWZ6d3AuY2NjcGFuLmNvbWRkAgEPDxYCHwAFCnNoZW53dWZ6d3BkZAIFDw8WAh8ABQbnmbvpmYZkZAIGDw8WAh8ABU%2FlrqLmnI1RUe%2B8muacquiuvue9ruOAgjxhIGhyZWY9J2xvZ2luX3FxLmFzcHg%2FZGxtYz1zaGVud3VmendwJz7ngrnmraTorr7nva48L2E%2BZGRkMm5EdFGmsB96XlAKD6rPDr5Z0fM6pYtaprMljPbiYtM%3D&__EVENTVALIDATION=%2FwEWBALI6KrmDgK5v9XxBQLck8KHCQK0mcHoBaqPliWYbnTsgRlJd1XzCdttqi2EdDzuAS89Fb7OcExc&teqtbz=swfz&teqtbz1=&b_dl=%B5%C7%C2%BD
uj5u.com熱心網友回復:
那怎么辦,但是我用httpwatch抓包就是得到這個資料阿uj5u.com熱心網友回復:
等待高手來解答!uj5u.com熱心網友回復:
chrome,firfox 都可以抓uj5u.com熱心網友回復:
等待高手破處!uj5u.com熱心網友回復:
先讀取登錄頁面的資料http://shenwufzwp.cccpan.com/login.aspx?d=shenwufzwp
讀取表單name="__VIEWSTATE"和name="__EVENTVALIDATION"的值
再加上密碼提交
__VIEWSTATE=值&__EVENTVALIDATION=值&b_dl=登陸&teqtbz=密碼&teqtbz1=密碼
本人沒有測驗過,只是在瀏覽器里看了一下登錄頁面
uj5u.com熱心網友回復:
最好用sniffer抓一下包, 對比一下http頭uj5u.com熱心網友回復:
1、先抓包看一下提交的引數是哪些。2、GET登錄地址:http://shenwufzwp.cccpan.com/login.aspx?d=shenwufzwp把以下兩個值取出來
__VIEWSTATE,__EVENTVALIDATION
html如下:
id="__VIEWSTATE" value="https://bbs.csdn.net/wEPDwUJODk2MjkyOTMzD2QWAmYPZBYIZg8PFgIeBFRleHQFFXNoZW53dWZ6d3AuY2NjcGFuLmNvbWRkAgEPDxYCHwAFCnNoZW53dWZ6d3BkZAIFDw8WAh8ABQbnmbvpmYZkZAIGDw8WAh8ABU/lrqLmnI1RUe+8muacquiuvue9ruOAgjxhIGhyZWY9J2xvZ2luX3FxLmFzcHg/ZGxtYz1zaGVud3VmendwJz7ngrnmraTorr7nva48L2E+ZGRkMm5EdFGmsB96XlAKD6rPDr5Z0fM6pYtaprMljPbiYtM=" />
id="__EVENTVALIDATION" value="https://bbs.csdn.net/wEWBALI6KrmDgK5v9XxBQLck8KHCQK0mcHoBaqPliWYbnTsgRlJd1XzCdttqi2EdDzuAS89Fb7OcExc"
3、再POST,POST的時候是有5個引數,你提交的時候才一個引數怎么會成功。
引數1 __VIEWSTATE
引數2 __EVENTVALIDATION 引數3 teqtbz
引數4 teqtbz1
引數4 b_dl
uj5u.com熱心網友回復:
路過。。。。。uj5u.com熱心網友回復:
使用httpwatch 這個插件抓包 我一般是用這個只要抓出post的那個包 修改賬戶和密碼
uj5u.com熱心網友回復:
__VIEWSTATE /wEPDwUJODk2MjkyOTMzD2QWAmYPZBYIZg8PFgIeBFRleHQFFXNoZW53dWZ6d3AuY2NjcGFuLmNvbWRkAgEPDxYCHwAFCnNoZW53dWZ6d3BkZAIFDw8WAh8ABQbnmbvpmYZkZAIGDw8WAh8ABU/lrqLmnI1RUe+8muacquiuvue9ruOAgjxhIGhyZWY9J2xvZ2luX3FxLmFzcHg/ZGxtYz1zaGVud3VmendwJz7ngrnmraTorr7nva48L2E+ZGRkMm5EdFGmsB96XlAKD6rPDr5Z0fM6pYtaprMljPbiYtM=__EVENTVALIDATION /wEWBALI6KrmDgK5v9XxBQLck8KHCQK0mcHoBaqPliWYbnTsgRlJd1XzCdttqi2EdDzuAS89Fb7OcExc
teqtbz swfz
teqtbz1
b_dl 登陸
有這么多引數,你才給出一個,當然登錄不上去了。
用 HttpAnalyzerStdV7.exe 抓包吧。
uj5u.com熱心網友回復:
這版塊號冷清。沒人氣。uj5u.com熱心網友回復:
其實這個并不復雜,只是服務頁面是使用.net開發的,所以會有一些系統生成的隱藏控制元件在里面需要提交,所以只需要找出現原樣post回去就可以了。好久沒折騰delphi了,現在手上也沒有安裝我用java寫了一段示例給你,已經成功登錄該頁面,你參考看看,希望對你有幫助。
public static void main(String[] args) throws IOException {
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());
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/110170.html
標籤:網絡通信/分布式開發
