gpt4 book ai didi

delphi - 在 Fiddler 中查看 Indy 流量

转载 作者:行者123 更新时间:2023-12-03 15:18:35 25 4
gpt4 key购买 nike

我认为对于熟悉 Indy 的人来说这是一个简单的问题。我正在使用 Delphi 2010 和 Indy 10。我正在尝试开始访问 SSL Web 服务。我认为如果我能让 Fiddler 查看我的 HTTP 流量,事情会容易很多。我在 StackOverflow 上看到过一些帖子,其中指出让 Fiddler 查看您的 Indy 流量并不是什么大事,您只需配置端口即可使其正常工作。我的问题是你如何做到这一点?

这是迄今为止我的代码:

procedure TForm1.Button1Click(Sender: TObject);
var slRequest: TStringList;
sResponse,
sFileName: String;
lHTTP: TIdHTTP;
lIOHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
sFileName := 'Ping.xml';
slRequest := TStringList.Create;
try
slRequest.LoadFromFile(sFileName);
lHTTP := TIdHTTP.Create(nil);
lHTTP.Intercept := IdLogDebug1;
lIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
try
lHTTP.IOHandler := lIOHandler;
sResponse := lHTTP.Post('https://FSETTESTPROD.EDD.CA.GOV/fsetservice', slRequest);
Memo1.Lines.Text := sResponse;
finally
lIOHandler.Free;
end;
finally
slRequest.Free;
end;
end;

编辑:如果我不使用 Fiddler 代理并在 Wireshark 运行时单击按钮,我会在 Wireshark 中获得此流量。 enter image description here

最佳答案

您可以通过设置 ProxyParams 轻松设置 Indy 使用 fiddler 提供的代理:

try
lHTTP.IOHandler := lIOHandler;
lHTTP.ProxyParams.ProxyServer := '127.0.0.1';
lHTTP.ProxyParams.ProxyPort := 8888;
sResponse := lHTTP.Post('<URL>', slRequest);
Memo1.Lines.Text := sResponse;
finally
lIOHandler.Free;
end;

然后您应该能够在 Fiddler 中看到所有流量。

编辑:如果这不起作用,您可以添加 TIdLogDebug 组件并将其添加为拦截器(就像您在问题中所做的那样)。OnReceive 和 OnSend 事件包含发送和接收的完整 header 以及回复数据:

procedure TForm10.captureTraffic(ASender: TIdConnectionIntercept; 
var ABuffer: TArray<Byte>);
var
i: Integer;
s: String;
begin
s := '';

for i := Low(ABuffer) to High(ABuffer) do
s := s + chr(ABuffer[i]);

Memo1.Lines.Add(s);
end;

关于delphi - 在 Fiddler 中查看 Indy 流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9236400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com