यह AFAIK संभव नहीं है (डेल्फी XE2)।
मैं एक छोटे से Trink का उपयोग किया है कच्चे हेडर के लिए उपयोग किया है। हालांकि, यह वास्तव में गंदा है! अपने जोखिम पर प्रयोग करें!
वास्तविक वर्ग अनुरोध वर्ग TIdHTTPAppRequest है (चेतावनी: विभिन्न प्रकार के वेब ब्रोकर ऐप के लिए अलग हो सकता है। मैंने इस कोड का विभिन्न प्रकार के डेटासैप ऐप के साथ परीक्षण नहीं किया है)।
तो चाल है:
एक वर्ग सहायक निम्न के समान घोषित:
TIdHTTPAppRequestHelper = class helper for TIdHTTPAppRequest
public
function GetRequestInfo: TIdEntityHeaderInfo;
end;
implementation
function TIdHTTPAppRequestHelper.GetRequestInfo: TIdEntityHeaderInfo;
begin
Result := FRequestInfo;
end;
इस तरह से आप की रक्षा FRequestInfo क्षेत्र के लिए acccess के लिए इस सहायक का उपयोग कर सकते हैं।
OnAction ईवेंट हैंडलर आप निम्नलिखित कोड का उपयोग कर सकते में सभी हेडर नामों की:
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;
हालांकि, यह बुरा है कि TWebRequest कच्चे हेडर को पढ़ने के लिए अनुमति देता है नहीं है। यह बदला जाना चाहिए!
स्रोत
2011-12-29 14:27:40
कि चाल किया धन्यवाद :) – MBulli