?? idhttpheaderinfo.pas
字號:
end;
end;
{ TIdProxyConnectionInfo }
constructor TIdProxyConnectionInfo.Create;
begin
inherited Create;
Clear;
end;
destructor TIdProxyConnectionInfo.Destroy;
begin
if Assigned(FAuthentication) then
begin
FreeAndNil(FAuthentication);
end;
inherited Destroy;
end;
procedure TIdProxyConnectionInfo.AssignTo(Destination: TPersistent);
begin
if Destination is TIdProxyConnectionInfo then
begin
with Destination as TIdProxyConnectionInfo do
begin
FPassword := Self.FPassword;
FPort := Self.FPort;
FServer := Self.FServer;
FUsername := Self.FUsername;
FBasicByDefault := Self.FBasicByDefault;
end;
end
else inherited AssignTo(Destination);
end;
procedure TIdProxyConnectionInfo.Clear;
begin
FServer := '';
FUsername := '';
FPassword := '';
FPort := 0;
end;
procedure TIdProxyConnectionInfo.SetHeaders(Headers: TIdHeaderList);
Var
S: String;
begin
with Headers do
begin
if Assigned(Authentication) then
begin
S := Authentication.Authentication;
if Length(S) > 0 then
begin
Values['Proxy-Authorization'] := S;
end
else
end
else begin // Use Basic authentication by default
if FBasicByDefault then
begin
FAuthentication := TIdBasicAuthentication.Create;
with Authentication do
begin
Params.Values['Username'] := Self.FUsername;
Params.Values['Password'] := Self.FPassword;
S := Authentication;
end;
if Length(S) > 0 then
begin
Values['Proxy-Authorization'] := S;
end;
end;
end;
end;
end;
procedure TIdProxyConnectionInfo.SetProxyPort(const Value: Integer);
begin
if Value <> FPort then
FreeAndNil(FAuthentication);
FPort := Value;
end;
procedure TIdProxyConnectionInfo.SetProxyServer(const Value: string);
begin
if not AnsiSameText(Value, FServer) then
FreeAndNil(FAuthentication);
FServer := Value;
end;
{ TIdRequestHeaderInfo }
procedure TIdRequestHeaderInfo.ProcessHeaders;
var
RangeDecode: string;
begin
// Set and Delete so that later we copy remaining to optional headers
with FRawHeaders do
begin
FAccept := Values['Accept']; {do not localize}
FAcceptCharSet := Values['Accept-Charset']; {do not localize}
FAcceptEncoding := Values['Accept-Encoding']; {do not localize}
FAcceptLanguage := Values['Accept-Language']; {do not localize}
FHost := Values['Host']; {do not localize}
FFrom := Values['From']; {do not localize}
FReferer := Values['Referer']; {do not localize}
FUserAgent := Values['User-Agent']; {do not localize}
RangeDecode := Values['Range']; {do not localize}
if RangeDecode <> '' then
begin
Fetch(RangeDecode, '=');
FContentRangeStart := StrToIntDef(Fetch(RangeDecode,'-'), 0);
FContentRangeEnd := StrToIntDef(Fetch(RangeDecode), 0);
end;
end;
inherited ProcessHeaders;
end;
procedure TIdRequestHeaderInfo.AssignTo(Destination: TPersistent);
begin
if Destination is TIdRequestHeaderInfo then
begin
with Destination as TIdRequestHeaderInfo do
begin
FAccept := Self.FAccept;
FAcceptCharSet := Self.FAcceptCharset;
FAcceptEncoding := Self.FAcceptEncoding;
FAcceptLanguage := Self.FAcceptLanguage;
FFrom := Self.FFrom;
FPassword := Self.FPassword;
FReferer := Self.FReferer;
FUserAgent := Self.FUserAgent;
FUsername := Self.FUsername;
FBasicByDefault := Self.FBasicByDefault;
end;
end
else
inherited AssignTo(Destination);
end;
procedure TIdRequestHeaderInfo.Clear;
begin
FAccept := 'text/html, */*'; {do not localize}
FAcceptCharSet := '';
FUserAgent := DefaultUserAgent;
FBasicByDefault := false;
inherited Clear;
end;
procedure TIdRequestHeaderInfo.SetHeaders;
Var
S: String;
begin
inherited SetHeaders;
with RawHeaders do
begin
if Length(FProxyConnection) > 0 then
begin
Values['Proxy-Connection'] := FProxyConnection; {do not localize}
end;
if Length(FHost) > 0 then
begin
Values['Host'] := FHost; {do not localize}
end;
if Length(FAccept) > 0 then
begin
Values['Accept'] := FAccept; {do not localize}
end;
if Length(FAcceptCharset) > 0 then
begin
Values['Accept-Charset'] := FAcceptCharSet;
end;
if Length(FAcceptEncoding) > 0 then
begin
Values['Accept-Encoding'] := FAcceptEncoding; {do not localize}
end;
if Length(FAcceptLanguage) > 0 then
begin
Values['Accept-Language'] := FAcceptLanguage; {do not localize}
end;
if Length(FFrom) > 0 then
begin
Values['From'] := FFrom; {do not localize}
end;
if Length(FReferer) > 0 then
begin
Values['Referer'] := FReferer; {do not localize}
end;
if Length(FUserAgent) > 0 then
begin
Values['User-Agent'] := FUserAgent; {do not localize}
end;
if FLastModified > 0 then
begin
Values['If-Modified-Since'] := DateTimeToInternetStr(FLastModified); {do not localize}
end;
if (FContentRangeStart <> 0) or (FContentRangeEnd <> 0) then
begin
if FContentRangeEnd <> 0 then
begin
Values['Range'] := 'bytes=' + IntToStr(FContentRangeStart) + '-' + IntToStr(FContentRangeEnd); {do not localize}
end else begin
Values['Range'] := 'bytes=' + IntToStr(FContentRangeStart) + '-'; {do not localize}
end;
end;
if Assigned(Authentication) then
begin
S := Authentication.Authentication;
if Length(S) > 0 then
begin
Values['Authorization'] := S; {do not localize}
end;
end
else begin // Use Basic authentication by default
if FBasicByDefault then
begin
Authentication := TIdBasicAuthentication.Create;
with Authentication do
begin
Params.Values['Username'] := Self.FUserName;
Params.Values['Password'] := Self.FPassword;
S := Authentication;
end;
if Length(S) > 0 then
begin
Values['Authorization'] := S; {do not localize}
end;
end;
end;
end;
end;
destructor TIdRequestHeaderInfo.destroy;
begin
FAuthentication.Free;
inherited;
end;
{ TIdResponseHeaderInfo }
constructor TIdResponseHeaderInfo.Create;
begin
inherited Create;
FContentType := 'text/html';
FWWWAuthenticate := TIdHeaderList.Create;
FProxyAuthenticate := TIdHeaderList.Create;
end;
destructor TIdResponseHeaderInfo.Destroy;
begin
FreeAndNil(FWWWAuthenticate);
FreeAndNil(FProxyAuthenticate);
inherited Destroy;
end;
procedure TIdResponseHeaderInfo.SetProxyAuthenticate(const Value: TIdHeaderList);
begin
FProxyAuthenticate.Assign(Value);
end;
procedure TIdResponseHeaderInfo.SetWWWAuthenticate(const Value: TIdHeaderList);
begin
FWWWAuthenticate.Assign(Value);
end;
procedure TIdResponseHeaderInfo.ProcessHeaders;
Var
RangeDecode: string;
begin
with FRawHeaders do
begin;
FLocation := Values['Location']; {do not localize}
FServer := Values['Server']; {do not localize}
FProxyConnection := Values['Proxy-Connection']; {do not localize}
RangeDecode := Values['Content-Range']; {do not localize}
if RangeDecode <> '' then
begin
Fetch(RangeDecode);
FContentRangeStart := StrToInt(Fetch(RangeDecode,'-'));
FContentRangeEnd := StrToInt(Fetch(RangeDecode,'/'));
end else begin
// Reset range variables if a range isn't given
FContentRangeStart := 0;
FContentRangeEnd := 0;
end;
FWWWAuthenticate.Clear;
Extract('WWW-Authenticate', FWWWAuthenticate); {do not localize}
FProxyAuthenticate.Clear;
Extract('Proxy-Authenticate', FProxyAuthenticate); {do not localize}
end;
inherited ProcessHeaders;
end;
procedure TIdResponseHeaderInfo.Clear;
begin
inherited Clear;
// S.G. 20/4/2003: Default to text/HTML
FContentType := 'text/html';
FLocation := '';
FServer := '';
if Assigned(FProxyAuthenticate) then
begin
FProxyAuthenticate.Clear;
end;
if Assigned(FWWWAuthenticate) then
begin
FWWWAuthenticate.Clear;
end;
end;
procedure TIdEntityHeaderInfo.SetCustomHeaders(const AValue: TIdHeaderList);
begin
FCustomHeaders.Assign(AValue);
end;
procedure TIdEntityHeaderInfo.SetContentLength(const AValue: Integer);
begin
FContentLength := AValue;
FHasContentLength := FContentLength >= 0;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -