webutil.pp 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. {
  2. $Id: header,v 1.1 2000/07/13 06:33:45 michael Exp $
  3. This file is part of the Free Component Library (FCL)
  4. Copyright (c) 1999-2000 by the Free Pascal development team
  5. See the file COPYING.FPC, included in this distribution,
  6. for details about the copyright.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  10. **********************************************************************}
  11. unit webutil;
  12. {$mode objfpc}{$H+}
  13. interface
  14. uses
  15. Classes, SysUtils, httpdefs;
  16. procedure DumpRequest (ARequest : TRequest; Dump : TStrings);
  17. implementation
  18. procedure DumpRequest (ARequest : TRequest; Dump : TStrings);
  19. Procedure AddNV(Const N,V : String);
  20. begin
  21. Dump.Add('<TR><TD>'+N+'</TD><TD>'+V+'</TD></TR>');
  22. end;
  23. Var
  24. I : integer;
  25. N,V : String;
  26. begin
  27. With ARequest, Dump do
  28. begin
  29. // All possible headers
  30. Add('<H1>All possible request headers:</H1>');
  31. Add('<TABLE BORDER="1"><TR><TD>Header</TD><TD>Value</TD></TR>');
  32. For I:=1 to NoHTTPFields do
  33. begin
  34. AddNV(HTTPFieldNames[i],GetFieldByName(HTTPFieldNames[i]));
  35. end;
  36. Add('</TABLE><P>');
  37. // Actually sent headers
  38. Add('<H1>Actually sent request headers:</H1>');
  39. Add('<TABLE BORDER="1"><TR><TD>Header</TD><TD>Value</TD></TR>');
  40. For I:=0 to FieldCount-1 do
  41. AddNV(FieldNames[I],FieldValues[I]);
  42. Add('</TABLE><P>');
  43. // Actually sent headers, as text
  44. Add('<H1>Actually sent request headers as text:</H1>');
  45. For I:=0 to FieldCount-1 do
  46. Add(Fields[I]+'<BR>');
  47. // Additional headers
  48. Add('<H1>Additional headers:</H1>');
  49. Add('<TABLE BORDER="1"><TR><TD>Header</TD><TD>Value</TD></TR>');
  50. AddNV('PathInfo',PathInfo);
  51. AddNV('PathTranslated',PathTranslated);
  52. AddNV('RemoteAddress',RemoteAddress);
  53. AddNV('RemoteHost',RemoteHost);
  54. AddNV('ScriptName',ScriptName);
  55. AddNV('ServerPort',IntToStr(ServerPort));
  56. Add('</TABLE><P>');
  57. // Additional headers
  58. If (QueryFields.Count>0) then
  59. begin
  60. Add('<H1>Request variables: ('+IntToStr(QueryFields.Count)+') </H1>');
  61. Add('<TABLE BORDER="1"><TR><TD>Name</TD><TD>Value</TD></TR>');
  62. For I:=0 to QueryFields.Count-1 do
  63. begin
  64. QueryFields.GetNameValue(i,N,V);
  65. AddNV(N,V);
  66. end;
  67. Add('</TABLE><P>');
  68. end;
  69. If (Files.Count>0) then
  70. begin
  71. Add('<H1>Uploaded files: ('+IntToStr(Files.Count)+') </H1>');
  72. Add('<TABLE BORDER="1">');
  73. Add('<TR><TD>Name</TD><TD>FileName</TD><TD>Size</TD>');
  74. Add('<TD>Temp FileName</TD><TD>Disposition</TD><TD>Content-Type</TD></TR>');
  75. For I:=0 to Files.Count-1 do
  76. With Files[i] do
  77. begin
  78. Add('<TR><TD>'+FieldName+'</TD><TD>'+FileName+'</TD>');
  79. Add('<TD>'+IntToStr(Size)+'</TD><TD>'+LocalFileName+'</TD>');
  80. Add('<TD>'+Disposition+'</TD><TD>'+ContentType+'</TD></TR>');
  81. end;
  82. Add('</TABLE><P>');
  83. end;
  84. end;
  85. end;
  86. end.