//
{{Copyright(c)2016 Advanced Delphi Systems
Richard Maley
Advanced Delphi Systems
12613 Maidens Bower Drive
Potomac, MD 20854 USA
phone 301-840-1554
dickmaley@advdelphisys.com
The code herein can be used or modified by anyone. Please retain references
to Richard Maley at Advanced Delphi Systems. If you make improvements to the
code please send your improvements to dickmaley@advdelphisys.com so that the
entire Delphi community can benefit. All comments are welcome.
}
unit ads_intnet_NM;
{Richard Maley
Advanced Delphi Systems
12613 Maidens Bower Drive
Potomac, MD 20854
301-840-1554
maley@compuserve.com
maley@advdelphisys.com
maley@cpcug.org
rmaley@fenix2.dol-esa.gov}
{
All of these utilities assume you have the NetMasters FastNet
internet components. The FastNet components can be purchased
from NetMasters at http://www.netmastersllc.com.
}
(*UnitIndex Master Index Implementation Section Download UnitsDescription: ads_IntNet_NM.pas This unit contains the following routines.
NMHttp_GetURLToFile NMHttp_IsUrl NMHttp_OnConnect NMHttp_OnConnectionFailed NMHttp_OnDisconnect NMHttp_OnFailure NMHttp_OnHostResolved NMHttp_OnPacketRecvd NMHttp_OnPacketSent NMHttp_OnStatus NMHttp_OnSuccess NMHttp_PostURLToFile NMHttp_URLToFileDetail
*)
interface
Uses SysUtils, ExtCtrls, Buttons, Classes,NMHttp;
{!~
NMHTTP_GETURLTOFILE
This utility assumes you have the NetMasters FastNet
internet components. The FastNet components can be purchased
from NetMasters at http://www.netmastersllc.com.
This utility copies a URL to file.
}
Function NMHttp_GetURLToFile(
NMHttp : TNMHttp;
SourceURL : String;
DestFile : String;
Button_Stop : TSpeedButton
): Boolean;
{!~
NMHTTP_ISURL
This utility assumes you have the NetMasters FastNet
internet components. The FastNet components can be purchased
from NetMasters at http://www.netmastersllc.com.
This utility tests the existance of a URL. If the URL exists
True is returned, otherwise False.
}
Function NMHttp_IsUrl(NMHttp: TNMHttp; URLString: String): Boolean;
Procedure NMHttp_OnConnect(MsgPanel : TPanel);
Procedure NMHttp_OnConnectionFailed(MsgPanel: TPanel);
Procedure NMHttp_OnDisconnect(MsgPanel : TPanel);
Procedure NMHttp_OnFailure(MsgPanel: TPanel;Cmd: CmdType);
Procedure NMHttp_OnHostResolved(MsgPanel : TPanel);
Procedure NMHttp_OnPacketRecvd(NMHttp: TNMHttp;MsgPanel: TPanel);
Procedure NMHttp_OnPacketSent(NMHttp: TNMHttp;MsgPanel: TPanel);
Procedure NMHttp_OnStatus(NMHttp: TNMHttp;MsgPanel: TPanel;Status: String);
Procedure NMHttp_OnSuccess(MsgPanel: TPanel;Cmd: CmdType);
{!~
NMHttp_PostURLToFile
This utility assumes you have the NetMasters FastNet
internet components. The FastNet components can be purchased
from NetMasters at http://www.netmastersllc.com.
This utility copies a URL to file using http post.
}
Function NMHttp_PostURLToFile(
NMHttp : TNMHttp;
SourceURL : String;
Parameters : String;
DestFile : String;
Button_Stop : TSpeedButton
): Boolean;
implementation
//Unit Description UnitIndex Master Index
Function NMHttp_URLToFileDetail(
NMHttp : TNMHttp;
SourceURL : String;
Parameters : String;
DestFile : String;
Button_Stop : TSpeedButton
): Boolean;
Var
BodyFile_SL : TStringList;
BodyFile : String;
begin
Try
Button_Stop.Enabled := True;
BodyFile := DestFile;
NMHttp.InputFileMode := False;
NMHttp.OutputFileMode := False;
NMHttp.Header := 'Header.Txt';
NMHttp.Body := BodyFile;
NMHttp.ReportLevel := 2;
With NMHttp.HeaderInfo do
Begin
Cookie := '';
LocalMailAddress := '';
LocalProgram := '';
Referer := '';
UserID := '';
Password := '';
End;
If (Parameters = '') Then
Begin
NMHttp.Get(SourceURL);
End
Else
Begin
NMHttp.Post(SourceURL,Parameters);
End;
BodyFile_SL := TStringList.Create();
Try
BodyFile_SL.Clear;
BodyFile_SL.Add(NMHttp.Body);
BodyFile_SL.SaveToFile(BodyFile);
Finally
BodyFile_SL.Free;
End;
Result := True;
Except
Result := False;
End;
Button_Stop.Enabled := False;
end;
{!~
NMHTTP_GETURLTOFILE
This utility assumes you have the NetMasters FastNet
internet components. The FastNet components can be purchased
from NetMasters at http://www.netmastersllc.com.
This utility copies a URL to file.
}
//Unit Description UnitIndex Master Index
Function NMHttp_GetURLToFile(
NMHttp : TNMHttp;
SourceURL : String;
DestFile : String;
Button_Stop : TSpeedButton
): Boolean;
begin
Result :=
NMHttp_URLToFileDetail(
NMHttp,
SourceURL,
'',
DestFile,
Button_Stop
);
end;
{!~
NMHttp_PostURLToFile
This utility assumes you have the NetMasters FastNet
internet components. The FastNet components can be purchased
from NetMasters at http://www.netmastersllc.com.
This utility copies a URL to file using http post.
}
//Unit Description UnitIndex Master Index
Function NMHttp_PostURLToFile(
NMHttp : TNMHttp;
SourceURL : String;
Parameters : String;
DestFile : String;
Button_Stop : TSpeedButton
): Boolean;
begin
Result :=
NMHttp_URLToFileDetail(
NMHttp,
SourceURL,
Parameters,
DestFile,
Button_Stop
);
end;
//Unit Description UnitIndex Master Index
Procedure NMHttp_OnConnect(MsgPanel : TPanel);
Begin
If MsgPanel <> nil Then
Begin
MsgPanel.Caption := 'Connected';
MsgPanel.Refresh;
End;
End;
//Unit Description UnitIndex Master Index
Procedure NMHttp_OnDisconnect(MsgPanel : TPanel);
Begin
If MsgPanel <> nil Then
Begin
MsgPanel.Caption := 'Disconnected';
MsgPanel.Refresh;
End;
End;
//Unit Description UnitIndex Master Index
Procedure NMHttp_OnFailure(MsgPanel: TPanel;Cmd: CmdType);
Begin
If MsgPanel <> nil Then
Begin
Case Cmd Of
CmdGET: MsgPanel.Caption := 'Get Failed';
CmdOPTIONS: MsgPanel.Caption := 'Options Failed';
CmdHEAD: MsgPanel.Caption := 'Head Failed';
CmdPOST: MsgPanel.Caption := 'Post Failed';
CmdPUT: MsgPanel.Caption := 'Put Failed';
CmdPATCH: MsgPanel.Caption := 'Patch Failed';
CmdCOPY: MsgPanel.Caption := 'Copy Failed';
CmdMOVE: MsgPanel.Caption := 'Move Failed';
CmdDELETE: MsgPanel.Caption := 'Delete Failed';
CmdLINK: MsgPanel.Caption := 'Link Failed';
CmdUNLINK: MsgPanel.Caption := 'UnLink Failed';
CmdTRACE: MsgPanel.Caption := 'Trace Failed';
CmdWRAPPED: MsgPanel.Caption := 'Wrapped Failed';
End;
MsgPanel.Refresh;
End;
End;
//Unit Description UnitIndex Master Index
Procedure NMHttp_OnHostResolved(MsgPanel : TPanel);
Begin
If MsgPanel <> nil Then
Begin
MsgPanel.Caption := 'Host Resolved';
MsgPanel.Refresh;
End;
End;
//Unit Description UnitIndex Master Index
Procedure NMHttp_OnPacketRecvd(
NMHttp : TNMHttp;
MsgPanel : TPanel);
Var
Tot : Integer;
Begin
Tot := NMHttp.BytesTotal;
If Tot = 0 Then
Begin
MsgPanel.Caption :=
IntToStr(NMHttp.BytesRecvd)+
' bytes retrieved';
End
Else
Begin
MsgPanel.Caption :=
IntToStr(NMHttp.BytesRecvd)+
' of '+
IntToStr(NMHttp.BytesTotal)+' retrieved';
End;
MsgPanel.Refresh;
End;
//Unit Description UnitIndex Master Index
Procedure NMHttp_OnPacketSent(NMHttp: TNMHttp;MsgPanel: TPanel);
Begin
If MsgPanel <> nil Then
Begin
MsgPanel.Caption :=
IntToStr(NMHttp.BytesSent)+
' of '+
IntToStr(NMHttp.BytesTotal)+
' sent';
MsgPanel.Refresh;
End;
End;
//Unit Description UnitIndex Master Index
Procedure NMHttp_OnStatus(NMHttp: TNMHttp;MsgPanel: TPanel;Status: String);
Begin
If MsgPanel <> nil Then
Begin
MsgPanel.Caption := Status;
If NMHttp.ReplyNumber = 404 Then
MsgPanel.Caption := 'Object Not Found';
MsgPanel.Refresh;
End;
End;
//Unit Description UnitIndex Master Index
Procedure NMHttp_OnSuccess(MsgPanel: TPanel;Cmd: CmdType);
Begin
If MsgPanel <> nil Then
Begin
Case Cmd Of
CmdGET: MsgPanel.Caption := 'Get Succeeded';
CmdOPTIONS: MsgPanel.Caption := 'Options Succeeded';
CmdHEAD: MsgPanel.Caption := 'Head Succeeded';
CmdPOST: MsgPanel.Caption := 'Post Succeeded';
CmdPUT: MsgPanel.Caption := 'Put Succeeded';
CmdPATCH: MsgPanel.Caption := 'Patch Succeeded';
CmdCOPY: MsgPanel.Caption := 'Copy Succeeded';
CmdMOVE: MsgPanel.Caption := 'Move Succeeded';
CmdDELETE: MsgPanel.Caption := 'Delete Succeeded';
CmdLINK: MsgPanel.Caption := 'Link Succeeded';
CmdUNLINK: MsgPanel.Caption := 'UnLink Succeeded';
CmdTRACE: MsgPanel.Caption := 'Trace Succeeded';
CmdWRAPPED: MsgPanel.Caption := 'Wrapped Succeeded';
End;
MsgPanel.Refresh;
End;
End;
//Unit Description UnitIndex Master Index
Procedure NMHttp_OnConnectionFailed(MsgPanel: TPanel);
Begin
If MsgPanel <> nil Then
Begin
MsgPanel.Caption := 'Connection Failed';
MsgPanel.Refresh;
End;
End;
{!~
NMHTTP_ISURL
This utility assumes you have the NetMasters FastNet
internet components. The FastNet components can be purchased
from NetMasters at http://www.netmastersllc.com.
This utility tests the existance of a URL. If the URL exists
True is returned, otherwise False.
}
//Unit Description UnitIndex Master Index
Function NMHttp_IsUrl(NMHttp: TNMHttp; URLString: String): Boolean;
Begin
Try
If FileExists(URLString) Then
Begin
Result := True;
Exit;
End;
Except
End;
Try
NMHttp.Head(URLString);
Result := True;
Except
Result := False;
End;
End;
End.
//