delphi 中如何模拟浏览器把表单提交给一 asp网页处理。
解决方案 »
- 关于数据库打包的问题。
- 程序运行中,控件的拖拉(在线等待)
- chart中改变对应的点的颜色?
- ADO连接ACCESS的问题,在线求解!!
- 请问大家哪里可以下载到李维的书籍???UP有分呀。。。。
- 怎样将TFileName类型转为String类型??
- 如何控制添加的记录写回或不写回到表里去?
- 怎样才能看和修改sys文件的内容?
- 1stclass 3000怎么安装?我下载了一个1stclass 3000,是一个可执行的安装程序,也有注册码。
- 一个有关Locate方法的奇怪怪问题。
- 关于URLDownloadToCacheFile(......),函数的几个问题。
- 请问Delphi中有厘米和磅之间进行转换的函数吗?
//Http头信息
sends:='POST /Expert/reply.asp HTTP/1.1'+#13#10;
sends:=sends+'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*'+#13#10;
sends:=sends+'Accept-Language: zh-cn'+#13#10;
sends:=sends+'Content-Type: application/x-www-form-urlencoded'+#13#10;
sends:=sends+'Accept-Encoding: gzip, deflate'+#13#10;
sends:=sends+'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)'+#13#10;
sends:=sends+'Host: expert.csdn.net'+#13#10;
sends:=sends+'Cache-Control: no-cache'+#13+#10;
//构造Cookie信息
if edit1.text<>'' then
begin
url.InputString :=trim(edit1.Text);
sendp:='username='+url.Encode ;
sendc:='csdnname='+url.Encode ;
end;
if edit2.text<>'' then
begin
url.InputString :=trim(edit2.Text);
sendp:=sendp+';userid='+url.Encode;
sendc:=sendc+'&csdnpassword='+url.Encode ;
end;
if edit3.text<>'' then
begin
url.InputString :=trim(edit3.Text);
sendp:=sendp+';aszx='+url.Encode;
end;
sends:=sends+'Cookie: '+sendp+#13+#10;
//发送的内容
url.inputstring:=trim(edit4.text);
sendc:=sendc+'&Topicid='+url.Encode;
url.InputString :=trim(memo1.Text);
sendc:=sendc+'&ReplyContent='+url.Encode;
sendc:=sendc+'&xmlReply=aaaaa';
sends:=sends+'Content-Length: '+inttostr(length(sendc))+#13#10;
sends:=sends+'Connection: Keep-Alive'+#13+#10+#13#10 +sendc;
memo2.Lines.Clear;
memo2.Lines.Add(sends);
clientsocket1.Socket.SendText(sends);
POST /Expert/reply.asp HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*
Referer: http://expert.csdn.net/Expert/xsl/Reply_Xml.asp?Topicid=1761293
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: expert.csdn.net
Content-Length: 72
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ASPSESSIONIDQQQTRARD=DNLFEPPAAODHIOGCMLPPIFKP; room=0; username=dashi888; speaknum=0; speaktime=2003%2D5%2D14+16%3A48%3A06; adminok=True; userid=487815; info1=0; remenber=0; mid=476831; m%5Ftype=1; aszx=0a727a0323ec0c60e5c113526be5ba02
以下是转来的function Test()
{
strA = "submit1=Submit&text1=scsdfsd";
//看起来象 QueryString,但没有?号在这里
var oReq = new ActiveXObject("MSXML2.XMLHTTP");
oReq.open("POST","http://ServerName/VDir/TstResult.asp",false);
oReq.setRequestHeader("Content-Length",strA.length);
oReq.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded");
//没有这句就玩不转拉
oReq.send(strA);
txt1.document.write(oReq.responseText);
}
用的是ActiveForm窗体,然后用web 发布的
如果楼主需要请联系: [email protected]
如果是可参考我以前做的一个自动登录的程序,代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
URL : widestring;
begin
URL := 'e:\mypost.htm';
webbrowser.Navigate (URL);
end;//注意是DocumentComplete而不是DownloadComplete
procedure TForm1.webbrowserDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var
o : Olevariant;
beginif UpperCase(WebBrowser.LocationURL) = UpperCase('file:///E:/mypost.htm') then
begin
o := WebBrowser.OleObject.document.all.item('username',0); //找到登录用户名的输入框
o.value := 'TEST';
o := WebBrowser.Oleobject.document.all.item('password',0); //找到登录密码的输入框
o.value := 'TEST';
WebBrowser.oleobject.document.Forms.Item(0, 0).submit;
end;end;