Mega Code Archive

 
Categories / Delphi / Examples
 

Webbrooker test-cgi

In web-programming it could sometimes be useful to have a testapplication to send webrequests to. This cgi-application will brake down the request message into it's pieces. Here is a sample output: Response.cgi You where sending this request to the webserver (localhost): Post method content: Get method content: Span=0 From=2004-09-04 00:00:00 To=2004-09-04 00:00:00 Cat=Internet access Status=1 -------------------------------------------------------------------------------- CookieFields: ASP.NET_SessionId=3rk4hymxeczm0f45dzvies32 URL: ProtocolVersion: HTTP/1.1 Method: GET PathInfo: PathTranslated: c:\inetpub\wwwroot Authorization: CacheControl: Accept: */* From: Host: localhost Referer: UserAgent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) ContentEncoding: ContentType: ContentVersion: Connection: Keep-Alive DerivedFrom : Title: RemoteAddr: 127.0.0.1 RemoteHost: 127.0.0.1 ScriptName: /cgi-bin/response.cgi InternalPathInfo: InternalScriptName: /cgi-bin/response.cgi And here is the code. Start a new web project by selecting: File/New/Other/Web Server Application/cgi Stand Alone Executable. Then put this code into Unit1: unit Unit1; interface uses SysUtils, Classes, HTTPApp; type TWebModule1 = class(TWebModule) procedure WebModule1WebActionItem1Action(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); private { Private declarations } public { Public declarations } end; var WebModule1: TWebModule1; const HTML1 = '<tr><td><font face=verdana size=-1 color=black><b>'; HTML2 = '<td><font face=verdana size=-1 color=black><b>'; implementation {$R *.dfm} procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); begin Response.Content:= '<font face=verdana size=-1 color=blue><b>Response.cgi<br><br>' + 'You where sending this request to the webserver (' + Request.Host + '):<br>' + '<font color=green>Post method content: ' + Request.ContentFields.Text + '<br><font color=red>Get method content: ' + Request.QueryFields.Text + '<hr width=100%><br><table width=600 border=2 bordercolor=red' + HTML1 + 'CookieFields:' + HTML2 + Request.CookieFields.Text + '&nbsp;' + HTML1 + 'URL:' + '&nbsp;' + HTML2 + Request.URL + '&nbsp;' + HTML1 + 'ProtocolVersion:' + '&nbsp;' + HTML2 + Request.ProtocolVersion + '&nbsp;' + HTML1 + 'Method:' + HTML2 + Request.Method + '&nbsp;' + HTML1 + 'PathInfo:' + HTML2 + Request.PathInfo + '&nbsp;' + HTML1 + 'PathTranslated:' + HTML2 + Request.PathTranslated + '&nbsp;' + HTML1 + 'Authorization:' + HTML2 + Request.Authorization + '&nbsp;' + HTML1 + 'CacheControl:' + HTML2 + Request.CacheControl + '&nbsp;' + HTML1 + 'Accept:' + HTML2 + Request.Accept + '&nbsp;' + HTML1 + 'From:' + HTML2 + Request.From + '&nbsp;' + HTML1 + 'Host:' + HTML2 + Request.Host + '&nbsp;' + HTML1 + 'Referer:' + HTML2 + Request.Referer + '&nbsp;' + HTML1 + 'UserAgent:'+ HTML2 + Request.UserAgent + '&nbsp;' + HTML1 + 'ContentEncoding:' + HTML2 + Request.ContentEncoding + '&nbsp;' + HTML1 + 'ContentType:' + HTML2 + Request.ContentType + '&nbsp;' + HTML1 + 'ContentVersion:' + HTML2 + Request.ContentVersion + '&nbsp;' + HTML1 + 'Connection:' + HTML2 + Request.Connection + '&nbsp;' + HTML1 + 'DerivedFrom:' + HTML2 + Request.DerivedFrom + '&nbsp;' + HTML1 + 'Title:' + HTML2 + Request.Title + '&nbsp;' + HTML1 + 'RemoteAddr:' + HTML2 + Request.RemoteAddr + '&nbsp;' + HTML1 + 'RemoteHost:' + HTML2 + Request.RemoteHost + '&nbsp;' + HTML1 + 'ScriptName:' + HTML2 + Request.ScriptName + '&nbsp;' + HTML1 + 'InternalPathInfo:' + HTML2 + Request.InternalPathInfo + '&nbsp;' + HTML1 + 'InternalScriptName:' + HTML2 + Request.InternalScriptName + '&nbsp;' + '</table>'; end; end.