解决方案 »
- SendMessage 不能取TDxDraw类型的输入框的值?
- 精通ReportMachine的请进来看一下。
- 帮忙修改下
- 怎么在程序中改变数据库的库结构!!!!!!!!!!!!急
- 救命!delphi没有日期型怎么办?在线等!!!
- 关于datetimepicker控件的问题!急!
- 可不可以在treeview或listview中插入背景图
- 小弟有段代码 不太明白 希望高手们 帮忙给做下 注释
- DELPHI 打印问题
- *****怎样将TreeView的全部内容用最简单的方法从中间层传至客户端*****
- delphi 如何访问Sql server 2000链接的服务器??
- 高手服务器客户端问题,转发
http://topic.csdn.net/u/20090626/11/c9fead9b-1df4-42d4-bf0c-a641ea5b3f1e.html
快点来人啊
//<![CDATA[
var theForm = document.forms['frmLogin'];
if (!theForm) {
theForm = document.frmLogin;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
<input type="submit" name="btnLogin" value="登 录" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("btnLogin", "", true, "", "", false, false))" id="btnLogin" class="Button" style="margin-top: 8px" /> 点击登录按钮的时候会检查一些东西,用idhttp应该是没办法实现,只能用webbrowser
const
url ='http://www.2ccc.com/login.asp';
var
param : TStringList;
begin
param := TStringList.Create;
param.add('membername=username');
param.add('memberpass=password');
param.Add('act=1'); idhttp1.HandleRedirects := true;
idhttp1.Request.Referer := 'http://www.2ccc.com';
cxmemo1.text:= idhttp1.post(url,param);
这个方法还可以。等人结贴。
这个用idhttp当然是没问题的了
ResponseStream := TMemoryStream.Create;
try
IdHttp1.Request.ContentType := data.RequestContentType;
data.AddFormField('tbUserName','username');
data.AddFormField('tbPassword','******');
data.PrepareStreamForDispatch;
data.Position := 0;
IdHTTP1.Post(edtHost.Text, data, ResponseStream);
finally
data.Free;
ResponseStream.Free;
end;
data.AddFormField('__EVENTTARGET','');
data.AddFormField('__VIEWSTATE','/wEPDwUJLTI5NjAzODk2ZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAQULY2hrUmVtZW1iZXKHW0DW4nQrSrBHBomKrt3/MjtBLA==');
data.AddFormField('__EVENTVALIDATION','/wEWBQKE2u7lCQLyj/OQAgK3jsrkBALR55GJDgKC3IeGDO8x1Jd0k/hBY1a/6Yl9fTpP16ti');
data.AddFormField('tbUserName','');
data.AddFormField('tbPassword','');
data.AddFormField('chkRemember','');
data.AddFormField('btnLogin','登 录');
2,按14楼mu_x 说的,把表单 字段名称和当前值 都写进去procedure TForm1.Button1Click(Sender: TObject);
var
postList: TStrings;
Response: TStringStream;begin;
Response := TStringStream.Create('');
postList := TStringList.Create;
try
IdHTTP1.Request.UserAgent:='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Maxthon)';
postList.Add('__EVENTTARGET=');
postList.Add('__VIEWSTATE=/wEPDwUJLTI5NjAzODk2ZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAQULY2hrUmVtZW1iZXKHW0DW4nQrSrBHBomKrt3/MjtBLA==');
postList.Add('__EVENTVALIDATION=/wEWBQKE2u7lCQLyj/OQAgK3jsrkBALR55GJDgKC3IeGDO8x1Jd0k/hBY1a/6Yl9fTpP16ti');
postList.Add('tbUserName=用户名称');
postList.Add('tbPassword=用户密码');
postList.Add('chkRemember=');
postList.Add('btnLogin=登 录');
IdHTTP1.Post('http://passport.cnblogs.com/login.aspx',postList,Response);
finally
Memo1.Lines.Text := Utf8ToAnsi(Response.DataString);
Response.Free;
postList.Free;
end;end;
procedure TForm1.IdHTTP1Redirect(Sender: TObject; var dest: String;
var NumRedirect: Integer; var Handled: Boolean;
var VMethod: TIdHTTPMethod);
var
url : string;
begin
url := dest;
Handled:=True;
showmessage(url);//转向地址
end;
然后POSt上去应该没问题了就