AFAIK nó không khả dụng (Delphi XE2).
Tôi đã sử dụng một chút xíu để có quyền truy cập vào các tiêu đề thô. Tuy nhiên, điều này thực sự là bẩn! Sử dụng bạn có rủi ro!
Lớp yêu cầu lớp thực tế là TIdHTTPAppRequest (CẢNH BÁO: Có thể khác với loại ứng dụng webbroker khác nhau. Tôi chưa thử nghiệm mã này với loại ứng dụng dữ liệu khác).
Vì vậy, các Bí quyết là:
Khai báo một helper lớp tương tự như sau:
TIdHTTPAppRequestHelper = class helper for TIdHTTPAppRequest
public
function GetRequestInfo: TIdEntityHeaderInfo;
end;
implementation
function TIdHTTPAppRequestHelper.GetRequestInfo: TIdEntityHeaderInfo;
begin
Result := FRequestInfo;
end;
Bằng cách này bạn có thể sử dụng helper này có TRUY CẬP đến lĩnh vực FRequestInfo bảo vệ.
Trong xử lý sự kiện OnAction bạn có thể sử dụng đoạn mã sau để có tất cả những cái tên tiêu đề:
procedure Twm.wmWebActionItem1Action(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
var
HeadersCount: Integer;
I: Integer;
sw: TStreamWriter;
begin
Response.ContentType := 'text/plain';
Response.ContentStream := TMemoryStream.Create;
sw := TStreamWriter.Create(Response.ContentStream);
try
HeadersCount := TIdHTTPAppRequest(Request).GetRequestInfo.RawHeaders.Count;
for I := 0 to HeadersCount - 1 do
sw.WriteLine(TIdHTTPAppRequest(Request).GetRequestInfo.RawHeaders.Names[I]);
finally
sw.Free;
end;
Handled := True;
end;
Tuy nhiên, nó là xấu mà TWebRequest không cho phép đọc các tiêu đề thô. Điều đó nên được thay đổi!
Nguồn
2011-12-29 14:27:40
Điều đó đã khiến mẹo cảm ơn bạn :) – MBulli