DELPHI如何通过HTTP协议访问服务器上的ASP文件,提交和读取数据?(100分)

  • 主题发起人 主题发起人 netfun2000
  • 开始时间 开始时间
N

netfun2000

Unregistered / Unconfirmed
GUEST, unregistred user!
ASP文件写或读数据库
DELPHI这里通过HTTP协议GET?POST?向数据库写或读取数据
哪位大侠给讲一下具体实现过程?
 
用现成的 Http 控件好了。Indy 有。
 
不可能吧,直接用asp吧
HTTP协议 只是brow而已
 
用 INDYHTTP 控件
方法一
MYINDYHTTP.Get('http://xxx.xxx.xxx.xxx/a.asp?参数1=xxx&参数2=XXXX')
方法二
myTstring.app('参数1=xxx')
myTstring.app('参数2=xxx')
MYINDYHTTP.Post('http://xxx.xxx.xxx.xxx/a.asp',myTstrings)
 
有没有ASP的例子?
DELPHI+ASP+数据库?

以前没弄过这样的东西,^_^。
 
用idhttp全搞定
idhttp.get
idhttp.post
 
你为什么不翻翻DELPHI自带的Indy的例子呢?
你看完了,我象就不需要问了。
 
有没有人给个例子?
我主要想实现通过ASP写数据库和下载数据库中的资料(文字性资料1-5万条)到DELPHI做的客户端软件那里。
 
给你个例子。

XMLHttp := TXMLHttp.Create(self);
XMLHttp.Open('POST', 'http://127.0.0.1/nec/command.asp?act=login', false);
XMLHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
XMLHttp.setRequestHeader('User-Agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3215; .NET CLR 1.0.3705)');
XMLHttp.setRequestHeader('Referer', 'ssssss');
XMLHttp.Send('name=user&pass=pass');

引用MSXML2_TLB类型库。

idhttp的例子,我就不发了。D的DEMO中有。只是需要自己维护Cookies,用上面的代码,XMLHTTP自己维护。好运。
 
var
s:string;
用 INDYHTTP 控件
方法一
s:=MYINDYHTTP.Get('http://xxx.xxx.xxx.xxx/a.asp?参数1=xxx&参数2=XXXX')
方法二
myTstring.app('参数1=xxx')
myTstring.app('参数2=xxx')
s:=MYINDYHTTP.Post('http://xxx.xxx.xxx.xxx/a.asp',myTstrings)

再处理一下S的值,就好了
 
procedure tmainform.mylogin;
var
name:String;
password:string;
IP :string;
GetURL :String;
PostURL :String;
GetHtml :String;
sParams :String;
sparams1 :string;
aParams :TStrings;
aStream :TStringStream;
tempstr,codestr:string;
begin
IdHTTP1 := TIdHTTP.Create(nil);
aParams := TStringList.Create;
aStream := TStringStream.Create('');
name:=edit1.Text ;
password:=edit2.Text ;
idhttp1.ProxyParams.ProxyServer :='';
idhttp1.ProxyParams.ProxyPort :=0;
idhttp1.ProxyParams.ProxyUsername:='';
idhttp1.ProxyParams.ProxyPassword:='';
GetURL := 'http://login.xxxx.net/new/test.asp'; {登录页面网址}
PostURL := 'http://login.xxx.net/new/test.asp?password='+password; {提交网址}
sParams := 'name='+name; {提交参数}
sParams1 := 'xxxx='+inttostr(myxxxx); {提交参数}
try
try
aParams.Clear;
aParams.Add(sParams);
aparams.Add(sparams1);
GetHtml := IdHTTP1.Get(GetURL); {取登录页面}
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
IdHTTP1.Post(PostURL, aParams, aStream); {提交}
tempstr:=astream.DataString; //执行完成后页面返回的结果
if tempstr='成功' then
begin
showmessage'登陆成功';
end
else
showmessage('登陆错误:'+tempstr);
except
application.MessageBox('网络不通或是ASP页错误','错误');
end;
finally
IdHTTP1.Free;
aParams.Free;
aStream.Free;
end;
end;
 
我也想知道
 
asp.net不错啊
 
有没有ASP的部分?弄了一段DELPHI,ASP的不懂啊。
 
To:web518,
你的例子,我从2CCC上下了,我发现只要运行一次,内存占用就增长几K。知道为什么吗?
 
多人接受答案了。
 
后退
顶部