如何用TClientSocket实现对http服务器发POST请求???csdn一周多了上无人回答. (100分)

  • 主题发起人 主题发起人 Benesoft
  • 开始时间 开始时间
我的代码如下,但是memo1中并没有任何反馈信息,不知道是什么问题?
如果我点了多次button,它会提示主机放弃一个已连接的连接。
恳请指教~~

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
ClientSocket1: TClientSocket;
procedure Button1Click(Sender: TObject);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
CR:string;
begin
CR:=#13+#10;
//ClientSocket1.Address := '192.168.0.15';
ClientSocket1.ClientType := ctBlocking;
ClientSocket1.Port := 9019;
ClientSocket1.Active := true;
ClientSocket1.Socket.SendText('post /login HTTP/1.1'+CR);
ClientSocket1.Socket.SendText('Accept:*/*'+CR);
ClientSocket1.Socket.SendText('Accept-Language: zh-cn'+CR);
ClientSocket1.Socket.SendText('referer:http://192.168.0.15/login'+CR);
ClientSocket1.Socket.SendText('Content-type:application/x-www-form-urlencoded'+CR);
ClientSocket1.Socket.SendText('User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)'+CR);
ClientSocket1.Socket.SendText('Host: 192.168.0.15:9019'+CR);
ClientSocket1.Socket.SendText('Content-length:16'+CR);
ClientSocket1.Socket.SendText('Connection: Keep-Alive'+CR);
ClientSocket1.Socket.SendText(CR);
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.Lines.Add(ClientSocket1.Socket.ReceiveText);
end;

end.
 
WinInet我用了。但Post请求不知如何发送?
 
memo1.Lines.Add(ClientSocket1.Socket.ReceiveText);
你用组塞,上面就什么都受不到的
 
to 张无忌:我看到你回答很多类似问题,都推荐使用wininet。我查了些资料,但是没看懂。不知道能否提供一个例子,只要连接就行,ok?3ks
 
属性的设置,
天啦,不得了。
我又要QQ。
又要BBS。
又要手机回女友的短信。
还有写java代码。。。
 
那应该选cNonblocking?我也尝试着选了,还是不正确,其他不用修改吗?[?]
 
都CSDN上找,上面有现成的代码,我也是用他的代码再参考MSDN来做的
 
呀呀呀,,这里中午来搞。。。。
 
csdn?我去看看,不行再来麻烦你,谢谢张无忌 [:D]
 
还是没搞定,继续学习,等待
 
问题已解决。我用的nonblocking方式,主要就是参数如何传递的问题。
 
ICS里面有个HttpCli的组件,是个Http客户端组件,
支持Post, Get, Put
 
LiChaoHui对的
 
试试看先
 
基本都已经解决,不用其他控件解决最好.
还有一个问题,想请教clientsocket连接上serversocket以后,有默认断开时间吗?

知道这个得,拿分来这里
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1821496
 
这位楼主怎么不来了?打算不打算结贴了呢?
 
多人接受答案了。
 
后退
顶部