德尔福 – 在Fiddler看到Indy交通
发布时间:2020-12-15 09:41:39 所属栏目:大数据 来源:网络整理
导读:我认为对于熟悉Indy的人来说,这是一个简单的问题.我正在使用Delphi 2010和Indy 10.我正试图开始访问SSL Web服务.我认为如果我能让Fiddler看到我的HTTP流量会更容易.我已经看到StackOverflow上的帖子表明让Fiddler看到你的Indy流量并不重要,你必须配置端口才
我认为对于熟悉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中获得此流量. 解决方法
您可以通过设置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组件并将其添加为拦截器(就像您在问题中所做的那样). 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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |