加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

德尔福 – 在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组件并将其添加为拦截器(就像您在问题中所做的那样).
OnReceive和OnSend事件包含发送和接收的完整标头以及回复数据:

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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读