📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,winsock,ComCtrls, ExtCtrls,untHttpHeaderObj, Menus ,
untDataTransmit;
type
TForm1 = class(TForm)
Memo1: TMemo;
GroupBox1: TGroupBox;
Button1: TButton;
edtServerIP: TEdit;
Label1: TLabel;
Label2: TLabel;
edtServerPort: TEdit;
UpDown1: TUpDown;
radMethodGet: TRadioButton;
radMethodPost: TRadioButton;
edtServerPage: TEdit;
Label3: TLabel;
Label4: TLabel;
edtRequestMemo: TEdit;
Label5: TLabel;
edtSessionID: TEdit;
Panel1: TPanel;
Memo3: TMemo;
Memo4: TMemo;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Memo5: TMemo;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
myDataHeader:TMyHttpHeaderObj;
CookieVal:TStringList;
dataHttpHeader:String;
dataHttpContent:String;
thd:TDataTransmit;
procedure parseHeaderData(hData:String);
procedure ThreadDone(Sender: TObject);
{ Private declarations }
public
RecvData:String;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses StrUtils, untHttpConnection;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Enabled := false;
Timer1.Enabled := true;
GroupBox1.Enabled := false;
if radMethodGet.Checked then
begin
thd := TDataTransmit.Create(edtServerIP.Text,StrToInt(edtServerPort.Text),
edtServerPage.Text,myDataHeader.CookieValue,RecvData);
thd.OnTerminate := ThreadDone;
end
else if radMethodPost.Checked then
begin
thd := TDataTransmit.Create(edtServerIP.Text,StrToInt(edtServerPort.Text),
edtServerPage.Text,myDataHeader.CookieValue,RecvData,PostMethod,edtRequestMemo.Text);
thd.OnTerminate := ThreadDone;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
CookieVal := TStringList.Create;
myDataHeader := TMyHttpHeaderObj.Create;
end;
procedure TForm1.parseHeaderData(hData: String);
var
i:integer;
begin
//将报文头与内容进行分离
i := pos(#13#10#13#10,hData);
if i>0 then
begin
dataHttpHeader := Copy(hData,1,i);
dataHttpContent := Copy(hData,i+4,Length(hData)-i+4+1);
end
else begin
dataHttpHeader := '';
dataHttpContent := '';
end;
//对报文头内容进行简单解析
myDataHeader.ParseHeaderData(hData);
if myDataHeader.CookieVal<>'' then
CookieVal.Text := myDataHeader.CookieVal;
Memo3.Text := dataHttpHeader;
Memo4.Text := dataHttpContent;
memo5.Text := myDataHeader.CookieValue.Text;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
CookieVal.Free;
myDataHeader.Free;
end;
procedure TForm1.N1Click(Sender: TObject);
begin
Panel1.Visible:=true;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
Panel1.Visible:=false;
end;
procedure TForm1.ThreadDone(Sender: TObject);
begin
Timer1.Enabled := false;
Button1.Enabled := true;
GroupBox1.Enabled := true;
Memo1.Text :=RecvData;
parseHeaderData(RecvData);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Memo1.Text := '连接已超时!';
Timer1.Enabled := false;
Button1.Enabled := true;
GroupBox1.Enabled := true;
If thd<>nil then
begin
thd.Terminate;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -