用idHttp控件如何提交数据?(50分)

  • 主题发起人 主题发起人 yhaoli
  • 开始时间 开始时间
Y

yhaoli

Unregistered / Unconfirmed
GUEST, unregistred user!
用idHttp控件如何提交数据,要求用post方法。好像不行,下载了idhttp控件网站的例子也不行,那位大侠
用过,不吝赐教!
 
post好像有问题,发送数据会报错的。
我找了好久也没找到有关post的提交数据格式。

还是用get方法解决,不用post照样能搞定
http://www.ddddlll.com/ddd.php?data=!@#$测试数据-343
^^^^^^^^^^^^^^^^把这串字符转换成16进制串
就可以发送任何二进制数据和字符串
idHttp.Get('http://www.ddddlll.com/ddd.php?data=%21@%23%24%B2%E2%CA%D4%CA%FD%BE%DD-343');
(转换时,字母和数据字还有*-,.,@_不用转换,其他全部转换成两位16进制串再在前面加%号)

ddd.php内容
-----------------------------------
<?
print("你发送到服务器的数据:");
print($datestr);
?>
------------------------------------
 
我以前用过的,没有问题!
你用的是那个indy版本,最好不要用它的开发版本!

还有,你必须要设置:
idHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
 
unit Main;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdHTTP;

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
http: TIdHTTP;
cbURL: TEdit;
PostData: TMemo;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
Response : TStringStream;
// PostData : string;
begin
Response := TSTringStream.Create('');
cbURL.Text := 'http://esales.mir2.com.cn/chklogin_test.asp';
Http.Post(cbURL.Text,PostData.Lines,Response);
Memo1.Text := Response.DataString;
Response.Free;
end;

end.
 
postdate的内容是什么?
 
我也想知道postdate.lines内容到底是怎么写的??????

我提交的时间总不能成功,不会是每个变量后直接跟=,然后就是值,不加&吗?
 
PostData.Lines
写成一个数据流的形式就可以了
 
当需要发送二进制数据时候用post
平时都用get
 
错误..get方法.有字符数限制的..倘若你发送的数据稍微一多.那么就必须使用post..
 
var
url:string;
nr,canshu:TStringList;
begin
url:='http://127.0.0.1/login.asp';
canshu:=TStringList.Create;
nr:=TStringList.Create;
canshu.add('id=1');
canshu.add('name=admin');
nr.CommaText:=idHTTP1.Post(url,canshu);
end;
 
后退
顶部