怎样在delphi中用http协议的post方法向remote host表格提交信息? 原理和GET是一样的。你是用组件吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用的是NMHTTP控件的post方法,可是总返回空值,我是这样写的:nmhttp1.post('http://127.0.0.1/test.asp','name=aaa&&password=bbb');我的提交表单就这两项,在test.asp中让name和password显示,可返回的结果总是空 我也曾遇到过这个问题,后来找到的解决方法是将发送的数据写在一个文本文件中,由NMHTTP控件解析文件,将数据POST给ASP(可查看Delphi提供的帮助文档)具体演示代码如下:(1).将传送的数据写在tmp.txt中; 格式:name=csdn&url=csdn.net&password=1232&helpid=id1234..........(2).Delphi实现代码: NMHTTP1.InputFileMode:=False; NMHTTP1.OutputFileMode:=True; //此属性必须为True NMHTTP1.ReportLevel:=Status_Basic; NMHTTP1.Post('http://127.0.0.1/test.asp','tmp.txt'); to ccll: 这个tmp.txt的路径如何指定? 是不是还要说明其他的信息?比如head, content-type等,这在vc++中是要指定的 NMHTTP这个控件处理POST的方法有BUG,nmhttp1.post('http://127.0.0.1/test.asp','name=aaa&&password=bbb');直接这样使用你的asp收到的参数是name="aaa&&password=bbb",只有第一个参数了,因为他把你的参数多进行了一次URL编码参数放在文件中就没有这个问题。另外网络上有很多功能强大的控件,还有源码,完全可以不用这个破烂(它的网站上已经有很新的版本了,要钱的,这里的版本中应该还有其他问题,有没有源代码) to netsong:文件的路径没有什么要求,可随便指定,如window\temp或您系统的当前路径等,同时可考虑文件使用完毕后,将其自动删除。 to sundy1: 那里可以找到这样的控件 to ccll: 可是我用了,系统错误:找不到tmp.txt文件??? 我用的是ICS的控件,你可以到作者的主页去看看http://www.rtfm.be/fpiette/indexuk.htm to netsong:文件是自己建立的,你没创建,当然找不到!//一个例子procedure test;var fFile:TextFile;begin AssignFile(fFile,'tmp.txt'); ReWrite(fFile); try //写文件操作 writeln(fFile,<字符串>); . . finally Flush(fFile); CloseFile(fFile); end;end; to ccll: 必须动态生成文件,不能用记事本写一个嘛? to shprog: ccll的方法我试过了,可行,该给分了! to ccll: 动态生成的文件也要指定路径呀,但是 NMHTTP.Post中你没有指定路径,是指 当前目录嘛?可是,我用记事本写了个 文本放在当前目录下,却提示找不到文 件??? to shprog:需要指定路径,你可以把文件放在当前路径或系统临时路径中。 post方式是有问题 delphi如何获取网页的http返回状态及反应时间 退出软件时,总出现Exception EAccessViolation in module project1.exe at 00173d84 求救:那位老兄有自己开发的医院信息管理系统HIS,能否卖给我啊。 请问GUAGE的用法 关于DEGrid的小问题???? delphi5.5 里lable控件为什么改变字体大小时,会吃字? IdHTTP下载繁体字网页面产生乱码 如何定义一个函数为数组类型? 怎样调出软键盘 数据库方面一问题? 如何确定某类中应该有哪些属性和方法? 有关Delphi中动态建表,多谢帮忙
nmhttp1.post('http://127.0.0.1/test.asp','name=aaa&&password=bbb');
我的提交表单就这两项,在test.asp中让name和password显示,可返回的结果总是空
(1).将传送的数据写在tmp.txt中;
格式:name=csdn&url=csdn.net&password=1232&helpid=id1234..........
(2).Delphi实现代码:
NMHTTP1.InputFileMode:=False;
NMHTTP1.OutputFileMode:=True; //此属性必须为True
NMHTTP1.ReportLevel:=Status_Basic;
NMHTTP1.Post('http://127.0.0.1/test.asp','tmp.txt');
比如head, content-type等,这在vc++中是要指定的
nmhttp1.post('http://127.0.0.1/test.asp','name=aaa&&password=bbb');
直接这样使用你的asp收到的参数是name="aaa&&password=bbb",只有第一个参数了,因为他把你的参数多进行了一次URL编码
参数放在文件中就没有这个问题。
另外网络上有很多功能强大的控件,还有源码,完全可以不用这个破烂(它的网站上已经有很新的版本了,要钱的,这里的版本中应该还有其他问题,有没有源代码)
???
http://www.rtfm.be/fpiette/indexuk.htm
procedure test;
var
fFile:TextFile;
begin
AssignFile(fFile,'tmp.txt');
ReWrite(fFile);
try
//写文件操作
writeln(fFile,<字符串>);
.
.
finally
Flush(fFile);
CloseFile(fFile);
end;end;
NMHTTP.Post中你没有指定路径,是指
当前目录嘛?可是,我用记事本写了个
文本放在当前目录下,却提示找不到文
件???