怎样在delphi中用http协议的post方法向remote host表格提交信息?

shprog 2000-09-01 07:34:00
...全文
612 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
BCB 2001-07-17
  • 打赏
  • 举报
回复
post方式是有问题
shprog 2000-09-06
  • 打赏
  • 举报
回复
非常感谢大家
ccll 2000-09-06
  • 打赏
  • 举报
回复
to shprog:需要指定路径,你可以把文件放在当前路径或系统临时路径中。
xiaocai 2000-09-05
  • 打赏
  • 举报
回复
to shprog: ccll的方法我试过了,可行,该给分了!
shprog 2000-09-05
  • 打赏
  • 举报
回复
to ccll: 动态生成的文件也要指定路径呀,但是
NMHTTP.Post中你没有指定路径,是指
当前目录嘛?可是,我用记事本写了个
文本放在当前目录下,却提示找不到文
件???
ccll 2000-09-04
  • 打赏
  • 举报
回复
我也曾遇到过这个问题,后来找到的解决方法是将发送的数据写在一个文本文件中,由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');
shprog 2000-09-04
  • 打赏
  • 举报
回复
用的是NMHTTP控件的post方法,可是总返回空值,我是这样写的:
nmhttp1.post('http://127.0.0.1/test.asp','name=aaa&&password=bbb');
我的提交表单就这两项,在test.asp中让name和password显示,可返回的结果总是空
zhyy 2000-09-04
  • 打赏
  • 举报
回复
填非asp的标单怎么办?
netsong 2000-09-04
  • 打赏
  • 举报
回复
to ccll: 必须动态生成文件,不能用记事本写一个嘛?
ccll 2000-09-04
  • 打赏
  • 举报
回复
to netsong:文件是自己建立的,你没创建,当然找不到!

//一个例子
procedure test;
var
fFile:TextFile;
begin
AssignFile(fFile,'tmp.txt');
ReWrite(fFile);
try
//写文件操作
writeln(fFile,<字符串>);
.
.
finally
Flush(fFile);
CloseFile(fFile);
end;

end;
sundyl 2000-09-04
  • 打赏
  • 举报
回复
我用的是ICS的控件,你可以到作者的主页去看看
http://www.rtfm.be/fpiette/indexuk.htm
netsong 2000-09-04
  • 打赏
  • 举报
回复
to ccll: 可是我用了,系统错误:找不到tmp.txt文件
???
netsong 2000-09-04
  • 打赏
  • 举报
回复
to sundy1: 那里可以找到这样的控件
ccll 2000-09-04
  • 打赏
  • 举报
回复
to netsong:文件的路径没有什么要求,可随便指定,如window\temp或您系统的当前路径等,同时可考虑文件使用完毕后,将其自动删除。
sundyl 2000-09-04
  • 打赏
  • 举报
回复
NMHTTP这个控件处理POST的方法有BUG,
nmhttp1.post('http://127.0.0.1/test.asp','name=aaa&&password=bbb');
直接这样使用你的asp收到的参数是name="aaa&&password=bbb",只有第一个参数了,因为他把你的参数多进行了一次URL编码
参数放在文件中就没有这个问题。
另外网络上有很多功能强大的控件,还有源码,完全可以不用这个破烂(它的网站上已经有很新的版本了,要钱的,这里的版本中应该还有其他问题,有没有源代码)
netsong 2000-09-04
  • 打赏
  • 举报
回复
是不是还要说明其他的信息?
比如head, content-type等,这在vc++中是要指定的
netsong 2000-09-04
  • 打赏
  • 举报
回复
to ccll: 这个tmp.txt的路径如何指定?
JGTM2000 2000-09-03
  • 打赏
  • 举报
回复
原理和GET是一样的。你是用组件吗?
netsong 2000-09-02
  • 打赏
  • 举报
回复
我也想知道
w102272 2000-09-01
  • 打赏
  • 举报
回复
关注
加载更多回复(1)

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧