Ignore:
Timestamp:
Jun 18, 2012, 10:42:17 PM (12 years ago)
Author:
chronos
Message:
  • Modified: QueryParts renamed to Path as TListString type.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Network/CoolWeb/WebServer/UHTTPServerTCP.pas

    r311 r376  
    5151
    5252      Response := THTTPResponse.Create;
    53       Response.Headers.Values['Server'] := Name;
     53      Response.Headers.Add('Server', Name);
    5454      Request := THTTPRequest.Create;
    5555      LineIndex := 0;
     
    6363              Request.Method := LineParts[0];
    6464              if Pos('?', LineParts[1]) > 0 then begin
    65                 Request.Path := Copy(LineParts[1], 1, Pos('?', LineParts[1]) - 1);
    6665                Request.Query.Parse(Copy(LineParts[1], Pos('?', LineParts[1]) + 1, Length(LineParts[1])));
    67               end else Request.Path := LineParts[1];
     66                Request.Path.Explode(Copy(LineParts[1], 1, Pos('?', LineParts[1]) - 1), '/', StrToStr);
     67              end else begin
     68                Request.Path.Explode(LineParts[1], '/', StrToStr);
     69                Request.Query.Clear;
     70              end;
    6871            end;
    6972          end else begin
     
    7174            if (LineParts.Count = 2) and (LineParts[0][Length(LineParts[0])] = ':') then begin
    7275              LineParts[0] := Copy(LineParts[0], 1, Length(LineParts[0]) - 1);
    73               Request.Headers.Values[LineParts[0]] := LineParts[1];
     76              Request.Headers.Add(LineParts[0], LineParts[1]);
    7477              //WriteLn(Line);
    7578            end;
     
    8285
    8386    // Process cookies
    84     if Request.Headers.IndexOfName('Cookie') <> -1 then
     87    if Request.Headers.SearchKey('Cookie') <> -1 then
    8588      Request.Cookies.Parse(Request.Headers.Values['Cookie']);
    8689
     
    9093
    9194    Response.Content.Clear;
    92     Response.Headers.Values['Content-Type'] := 'text/html';
     95    Response.Headers.Add('Content-Type', 'text/html');
    9396
    9497    if Assigned(OnRequest) then OnRequest(HandlerData)
     
    101104    with Response do begin
    102105      SendString('HTTP/1.0 200 OK'#13#10);
    103       Headers.Values['Content-Length'] := IntToStr(Content.Size);
    104       Headers.Values['Connection'] := 'close';
    105       Headers.Values['Date'] := RFC822DateTime(Now);
     106      Headers.Add('Content-Length', IntToStr(Content.Size));
     107      Headers.Add('Connection', 'close');
     108      Headers.Add('Date', RFC822DateTime(Now));
    106109
    107110      // Handle cookies
    108111      for I := 0 to Cookies.Count - 1 do
    109         Headers.Add('Set-Cookie' + Headers.NameValueSeparator + Cookies.Names[I] + '=' + Cookies.ValueFromIndex[I]);
     112        Headers.Add('Set-Cookie', Cookies.Names[I] + '=' + Cookies.ValueFromIndex[I]);
    110113        // + ';path=/;expires=' + RFC822DateTime(Now);
    111114
    112115      // Send headers
    113116      for I := 0 to Headers.Count - 1 do begin
    114         //WriteLn(Headers.Names[I] + ': ' + Headers.ValueFromIndex[I] + #13#10);
    115         SendString(Headers.Names[I] + ': ' + Headers.ValueFromIndex[I] + #13#10);
     117        WriteLn(Headers.Keys[I] + ': ' + Headers.Items[I].Value + #13#10);
     118        SendString(Headers.Keys[I] + ': ' + Headers.Items[I].Value + #13#10);
    116119      end;
    117120      SendString(#13#10);
Note: See TracChangeset for help on using the changeset viewer.