Changeset 311 for Network/CoolWeb/WebServer/UHTTPServer.pas
- Timestamp:
- Jan 4, 2012, 2:27:19 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Network/CoolWeb/WebServer/UHTTPServer.pas
r250 r311 28 28 29 29 THTTPRequest = class 30 ContentType: string; 31 Content: TMemoryStreamEx; 30 32 Query: TQueryParameterList; 31 33 QueryParts: TListString; … … 34 36 Headers: TStringList; 35 37 Cookies: TCookieList; 38 Post: TQueryParameterList; 39 procedure Clear; 36 40 constructor Create; 37 41 destructor Destroy; override; … … 42 46 THTTPResponse = class 43 47 ContentType: string; 44 Stream: TMemoryStreamEx;48 Content: TMemoryStreamEx; 45 49 Headers: TStringList; 46 50 Cookies: TCookieList; 51 procedure Clear; 47 52 constructor Create; 48 53 destructor Destroy; override; … … 126 131 I: Integer; 127 132 begin 128 with HandlerData, Response. Streamdo begin133 with HandlerData, Response.Content do begin 129 134 //Response.Cookies.Values['Test'] := 'Halo'; 130 135 //Response.Cookies.Values['Test2'] := 'Halo2'; … … 134 139 135 140 WriteString('<a href="?ServerInfo">Refresh</a>'); 141 142 WriteString('<h5>Request HTTP content:</h5>'); 143 WriteStream(Request.Content, Request.Content.Size); 136 144 137 145 WriteString('<h5>Request HTTP headers</h5>'); … … 151 159 end; 152 160 161 WriteString('<h5>Request HTTP POST</h5>'); 162 for I := 0 to Request.Post.Count - 1 do begin; 163 WriteString(Request.Post.Strings[I] + '<br/>'); 164 end; 165 166 167 WriteString('<h5>Response HTTP content:</h5>'); 168 WriteStream(Response.Content, Response.Content.Size); 169 153 170 WriteString('<h5>Response HTTP headers</h5>'); 154 with Response. Streamdo171 with Response.Content do 155 172 for I := 0 to Response.Headers.Count - 1 do begin; 156 173 WriteString(Response.Headers.Strings[I] + '<br/>'); … … 166 183 procedure THTTPServer.ErrorResponse(HandlerData: THTTPHandlerData); 167 184 begin 168 with HandlerData, Response. Streamdo begin185 with HandlerData, Response.Content do begin 169 186 WriteString('<html><body>' + Format(SPageNotFound, [Request.Path]) + '</body></html>'); 170 187 end; … … 193 210 Response.Headers.Values['Content-Type'] := GetMIMEType(Copy(ExtractFileExt(FileName), 2, 255)); 194 211 BinaryFile := TFileStream.Create(FileName, fmOpenRead); 195 Response. Stream.WriteStream(BinaryFile, BinaryFile.Size);212 Response.Content.WriteStream(BinaryFile, BinaryFile.Size); 196 213 BinaryFile.Destroy; 197 214 end else 198 with Response. Streamdo begin215 with Response.Content do begin 199 216 WriteLn(Format(SFileNotFound, [Request.Path])); 200 217 WriteString('<html><body>' + Format(SFileNotFound, [Request.Path]) + '</body></html>'); … … 217 234 { THTTPResponse } 218 235 236 procedure THTTPResponse.Clear; 237 begin 238 Content.Clear; 239 Cookies.Clear; 240 Headers.Clear; 241 end; 242 219 243 constructor THTTPResponse.Create; 220 244 begin 221 Stream:= TMemoryStreamEx.Create;245 Content := TMemoryStreamEx.Create; 222 246 Cookies := TCookieList.Create; 223 247 Headers := TStringList.Create; … … 226 250 destructor THTTPResponse.Destroy; 227 251 begin 228 Stream.Free;252 Content.Free; 229 253 Headers.Free; 230 254 Cookies.Free; … … 253 277 { THTTPRequest } 254 278 279 procedure THTTPRequest.Clear; 280 begin 281 Post.Clear; 282 Content.Clear; 283 QueryParts.Clear; 284 Cookies.Clear; 285 Headers.Clear; 286 Query.Clear; 287 end; 288 255 289 constructor THTTPRequest.Create; 256 290 begin 291 Post := TQueryParameterList.Create; 257 292 Query := TQueryParameterList.Create; 258 293 QueryParts := TListString.Create; 259 294 Headers := TStringList.Create; 260 295 Cookies := TCookieList.Create; 296 Content := TMemoryStreamEx.Create; 261 297 end; 262 298 263 299 destructor THTTPRequest.Destroy; 264 300 begin 301 Content.Free; 302 Post.Free; 265 303 Query.Free; 266 304 QueryParts.Free;
Note:
See TracChangeset
for help on using the changeset viewer.