Skip to content

Commit 00e165e

Browse files
author
Sebastian Klatte
committed
Inital version supporting Indy 10.6.0
1 parent 08b52fa commit 00e165e

File tree

892 files changed

+120401
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

892 files changed

+120401
-0
lines changed

HTTPManager_de.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Der HTTPManager ist eine Klasse, die GET/POST Requests annimmt und diese im Hintergrund (einzeln) hintereinander bearbeitet. (F�r Dateidownloads ist diese Klasse eher weniger gedacht!)
2+
3+
Das besondere am HTTPManager ist, dass es komplett auf Interfaces gest�tzt ist, die nur COM Datentypen verwenden und so ideal in einem Pluginsystem eingebunden werden kann. So wird z.B. die HTTPManager Klasse in dem Hauptprogramm erstellt und das Interface an die Plugins weitergegeben. Als Ausgangsbasis dient die HTTP Komponente von Indy, die Hintergrundarbeit wird mit der OmniThreadLibrary erledigt.
4+
Es war mir au�erdem wichtig, dass der Benutzer sich so wenig wie n�tig mit Cookies, Parameterkodierungen oder z.B. Socks Konfigurationen besch�ftigen muss. Es wurden diverse wichtige Konfigurationen direkt integriert, sinnvolle Standardwerte gesetzt und z.B. bei den POST-Parametern ein automatische abstrakte Parameterklasse integriert (w�hlt selbstst�ndig ContentType).
5+
6+
Da die Kommunikation mit dem Internet aus Anwendungen heraus immer wichtiger wird und dies besonders bei Delphi Einsteigern gerne probiert wird, bietet diese Komponente das Ideale Handwerkszeug zur Realisierung. Nat�rlich gibt es in Delphi auch fertige Klassen um damit beispielsweise XML Requests zu basteln; aber diese beschr�nken sich dann halt immer auch bestimmte Voraussetzungen.
7+
8+
Ein kleiner Bonus: der HTTPManager speichert alle Aktivit�ten �ber den Programmverlauf, sodass man auch zu sp�teren Zeitpunkten an gezielte Requests kommt oder dem Nutzer z.B. �ber eine visuelle Oberfl�che eine Art HTTP Logger bietet.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
program SimpleGETRequest;
2+
3+
uses
4+
Forms,
5+
uMain in 'uMain.pas' {Main};
6+
7+
{$R *.res}
8+
9+
begin
10+
Application.Initialize;
11+
ReportMemoryLeaksOnShutdown := True;
12+
Application.MainFormOnTaskbar := True;
13+
Application.CreateForm(TMain, Main);
14+
Application.Run;
15+
end.
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+
<PropertyGroup>
3+
<ProjectGuid>{C478DC25-F64E-4D3B-9AE6-11E71BEB081D}</ProjectGuid>
4+
<MainSource>SimpleGETRequest.dpr</MainSource>
5+
<Config Condition="'$(Config)'==''">Debug</Config>
6+
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
7+
<ProjectVersion>12.0</ProjectVersion>
8+
</PropertyGroup>
9+
<PropertyGroup Condition="'$(Config)'=='Basis' or '$(Base)'!=''">
10+
<Base>true</Base>
11+
</PropertyGroup>
12+
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
13+
<Cfg_1>true</Cfg_1>
14+
<CfgParent>Base</CfgParent>
15+
<Base>true</Base>
16+
</PropertyGroup>
17+
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
18+
<Cfg_2>true</Cfg_2>
19+
<CfgParent>Base</CfgParent>
20+
<Base>true</Base>
21+
</PropertyGroup>
22+
<Import Project="..\examples.optset" Condition="'$(Base)'!='' And Exists('..\examples.optset')"/>
23+
<PropertyGroup Condition="'$(Base)'!=''">
24+
<DCC_DcuOutput>dcu</DCC_DcuOutput>
25+
<DCC_DependencyCheckOutputName>SimpleGETRequest.exe</DCC_DependencyCheckOutputName>
26+
<DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias>
27+
<DCC_ImageBase>00400000</DCC_ImageBase>
28+
<DCC_Platform>x86</DCC_Platform>
29+
<CfgDependentOn>..\examples.optset</CfgDependentOn>
30+
</PropertyGroup>
31+
<PropertyGroup Condition="'$(Cfg_1)'!=''">
32+
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
33+
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
34+
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
35+
<DCC_DebugInformation>false</DCC_DebugInformation>
36+
</PropertyGroup>
37+
<PropertyGroup Condition="'$(Cfg_2)'!=''">
38+
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
39+
</PropertyGroup>
40+
<ItemGroup>
41+
<DelphiCompile Include="SimpleGETRequest.dpr">
42+
<MainSource>MainSource</MainSource>
43+
</DelphiCompile>
44+
<DCCReference Include="uMain.pas">
45+
<Form>Main</Form>
46+
</DCCReference>
47+
<BuildConfiguration Include="Basis">
48+
<Key>Base</Key>
49+
<DependentOn>..\examples.optset</DependentOn>
50+
</BuildConfiguration>
51+
<BuildConfiguration Include="Release">
52+
<Key>Cfg_1</Key>
53+
<CfgParent>Base</CfgParent>
54+
</BuildConfiguration>
55+
<BuildConfiguration Include="Debug">
56+
<Key>Cfg_2</Key>
57+
<CfgParent>Base</CfgParent>
58+
</BuildConfiguration>
59+
</ItemGroup>
60+
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
61+
<ProjectExtensions>
62+
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
63+
<Borland.ProjectType>VCLApplication</Borland.ProjectType>
64+
<BorlandProject>
65+
<Delphi.Personality>
66+
<Source>
67+
<Source Name="MainSource">SimpleGETRequest.dpr</Source>
68+
</Source>
69+
<Parameters>
70+
<Parameters Name="UseLauncher">False</Parameters>
71+
<Parameters Name="LoadAllSymbols">True</Parameters>
72+
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
73+
</Parameters>
74+
<VersionInfo>
75+
<VersionInfo Name="IncludeVerInfo">False</VersionInfo>
76+
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
77+
<VersionInfo Name="MajorVer">1</VersionInfo>
78+
<VersionInfo Name="MinorVer">0</VersionInfo>
79+
<VersionInfo Name="Release">0</VersionInfo>
80+
<VersionInfo Name="Build">0</VersionInfo>
81+
<VersionInfo Name="Debug">False</VersionInfo>
82+
<VersionInfo Name="PreRelease">False</VersionInfo>
83+
<VersionInfo Name="Special">False</VersionInfo>
84+
<VersionInfo Name="Private">False</VersionInfo>
85+
<VersionInfo Name="DLL">False</VersionInfo>
86+
<VersionInfo Name="Locale">1031</VersionInfo>
87+
<VersionInfo Name="CodePage">1252</VersionInfo>
88+
</VersionInfo>
89+
<VersionInfoKeys>
90+
<VersionInfoKeys Name="CompanyName"/>
91+
<VersionInfoKeys Name="FileDescription"/>
92+
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
93+
<VersionInfoKeys Name="InternalName"/>
94+
<VersionInfoKeys Name="LegalCopyright"/>
95+
<VersionInfoKeys Name="LegalTrademarks"/>
96+
<VersionInfoKeys Name="OriginalFilename"/>
97+
<VersionInfoKeys Name="ProductName"/>
98+
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
99+
<VersionInfoKeys Name="Comments"/>
100+
</VersionInfoKeys>
101+
<Excluded_Packages>
102+
<Excluded_Packages Name="$(BDS)\bin\dclDataSnapIndy10ServerTransport140.bpl">Embarcadero DBExpress DataSnap-Servertransport-Komponenten</Excluded_Packages>
103+
<Excluded_Packages Name="$(BDS)\bin\dclDataSnapServer140.bpl">Embarcadero DBExpress DataSnap-Serverkomponenten</Excluded_Packages>
104+
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k140.bpl">Microsoft Office 2000 Beispiele für gekapselte Komponenten für Automation Server</Excluded_Packages>
105+
<Excluded_Packages Name="$(BDS)\bin\dclofficexp140.bpl">Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server</Excluded_Packages>
106+
<Excluded_Packages Name="C:\Program Files (x86)\FastReports\FastScript\LibD14\dclfsibx14.bpl">FastScript 1.9 IBX Components</Excluded_Packages>
107+
</Excluded_Packages>
108+
</Delphi.Personality>
109+
</BorlandProject>
110+
<ProjectFileVersion>12</ProjectFileVersion>
111+
</ProjectExtensions>
112+
</Project>
113+
114+
<!-- EurekaLog First Line
115+
[Exception Log]
116+
EurekaLog Version=7001
117+
DeleteMapAfterCompile=1
118+
EurekaLog Last Line -->
5.16 KB
Binary file not shown.
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
object HTTPLogger: THTTPLogger
2+
Left = 0
3+
Top = 0
4+
BorderIcons = [biSystemMenu]
5+
Caption = 'HTTPLogger'
6+
ClientHeight = 300
7+
ClientWidth = 635
8+
Color = clBtnFace
9+
Font.Charset = DEFAULT_CHARSET
10+
Font.Color = clWindowText
11+
Font.Height = -11
12+
Font.Name = 'Tahoma'
13+
Font.Style = []
14+
KeyPreview = True
15+
OldCreateOrder = False
16+
Position = poMainFormCenter
17+
OnCreate = FormCreate
18+
OnKeyPress = FormKeyPress
19+
OnShow = FormShow
20+
DesignSize = (
21+
635
22+
300)
23+
PixelsPerInch = 96
24+
TextHeight = 13
25+
object cxGrid: TcxGrid
26+
Left = 8
27+
Top = 8
28+
Width = 619
29+
Height = 284
30+
Anchors = [akLeft, akTop, akRight, akBottom]
31+
TabOrder = 0
32+
object tvHTTPProcess: TcxGridTableView
33+
Navigator.Buttons.CustomButtons = <>
34+
DataController.Summary.DefaultGroupSummaryItems = <>
35+
DataController.Summary.FooterSummaryItems = <>
36+
DataController.Summary.SummaryGroups = <>
37+
OptionsBehavior.CellHints = True
38+
OptionsSelection.CellSelect = False
39+
OptionsView.ColumnAutoWidth = True
40+
OptionsView.GroupByBox = False
41+
object tvHTTPProcessUniqueID: TcxGridColumn
42+
Caption = 'ID'
43+
PropertiesClassName = 'TcxLabelProperties'
44+
MinWidth = 30
45+
Options.HorzSizing = False
46+
Width = 30
47+
end
48+
object tvHTTPProcessMethod: TcxGridColumn
49+
Caption = 'Method'
50+
PropertiesClassName = 'TcxLabelProperties'
51+
MinWidth = 50
52+
Options.HorzSizing = False
53+
Width = 50
54+
end
55+
object tvHTTPProcessURI: TcxGridColumn
56+
Caption = 'URI'
57+
PropertiesClassName = 'TcxTextEditProperties'
58+
Width = 413
59+
end
60+
object tvHTTPProcessStatusCode: TcxGridColumn
61+
Caption = 'Status code'
62+
PropertiesClassName = 'TcxLabelProperties'
63+
MinWidth = 64
64+
Options.HorzSizing = False
65+
end
66+
end
67+
object tvHTTPRequest: TcxGridTableView
68+
Navigator.Buttons.CustomButtons = <>
69+
DataController.Summary.DefaultGroupSummaryItems = <>
70+
DataController.Summary.FooterSummaryItems = <>
71+
DataController.Summary.SummaryGroups = <>
72+
OptionsBehavior.CellHints = True
73+
OptionsView.ColumnAutoWidth = True
74+
OptionsView.GroupByBox = False
75+
object tvHTTPRequestName: TcxGridColumn
76+
Caption = 'Name'
77+
PropertiesClassName = 'TcxLabelProperties'
78+
MinWidth = 100
79+
Options.HorzSizing = False
80+
Width = 100
81+
end
82+
object tvHTTPRequestValue: TcxGridColumn
83+
Caption = 'Value'
84+
PropertiesClassName = 'TcxBlobEditProperties'
85+
Properties.BlobEditKind = bekMemo
86+
Properties.BlobPaintStyle = bpsText
87+
Properties.ImmediateDropDownWhenActivated = False
88+
Properties.ImmediateDropDownWhenKeyPressed = False
89+
Properties.MemoScrollBars = ssBoth
90+
Properties.PopupWidth = 400
91+
Properties.ReadOnly = True
92+
end
93+
end
94+
object tvHTTPParams: TcxGridTableView
95+
Navigator.Buttons.CustomButtons = <>
96+
DataController.Summary.DefaultGroupSummaryItems = <>
97+
DataController.Summary.FooterSummaryItems = <>
98+
DataController.Summary.SummaryGroups = <>
99+
OptionsBehavior.CellHints = True
100+
OptionsView.ColumnAutoWidth = True
101+
OptionsView.GroupByBox = False
102+
object tvHTTPParamsColumnName: TcxGridColumn
103+
Caption = 'Name'
104+
PropertiesClassName = 'TcxTextEditProperties'
105+
end
106+
object tvHTTPParamsColumnValue: TcxGridColumn
107+
Caption = 'Value'
108+
PropertiesClassName = 'TcxTextEditProperties'
109+
end
110+
end
111+
object tvHTTPResponse: TcxGridTableView
112+
Navigator.Buttons.CustomButtons = <>
113+
DataController.Summary.DefaultGroupSummaryItems = <>
114+
DataController.Summary.FooterSummaryItems = <>
115+
DataController.Summary.SummaryGroups = <>
116+
OptionsBehavior.CellHints = True
117+
OptionsView.ColumnAutoWidth = True
118+
OptionsView.GroupByBox = False
119+
object tvHTTPResponseName: TcxGridColumn
120+
Caption = 'Name'
121+
PropertiesClassName = 'TcxLabelProperties'
122+
MinWidth = 100
123+
Options.HorzSizing = False
124+
Width = 100
125+
end
126+
object tvHTTPResponseValue: TcxGridColumn
127+
Caption = 'Value'
128+
PropertiesClassName = 'TcxBlobEditProperties'
129+
Properties.BlobEditKind = bekMemo
130+
Properties.BlobPaintStyle = bpsText
131+
Properties.ImmediateDropDownWhenActivated = False
132+
Properties.ImmediateDropDownWhenKeyPressed = False
133+
Properties.MemoScrollBars = ssBoth
134+
Properties.PopupWidth = 450
135+
Properties.ReadOnly = True
136+
end
137+
end
138+
object HTTPProcess: TcxGridLevel
139+
Caption = 'HTTPProcess'
140+
GridView = tvHTTPProcess
141+
Options.DetailTabsPosition = dtpTop
142+
object HTTPRequest: TcxGridLevel
143+
Caption = 'Request'
144+
GridView = tvHTTPRequest
145+
end
146+
object HTTPParams: TcxGridLevel
147+
Caption = 'Params'
148+
GridView = tvHTTPParams
149+
end
150+
object HTTPResponse: TcxGridLevel
151+
Caption = 'Response'
152+
GridView = tvHTTPResponse
153+
end
154+
end
155+
end
156+
end

0 commit comments

Comments
 (0)