首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Fiddler中查看Indy流量

在Fiddler中查看Indy流量
EN

Stack Overflow用户
提问于 2012-02-11 07:41:49
回答 1查看 3.4K关注 0票数 4

我认为对于熟悉Indy的人来说,这是一个简单的问题。我使用的是Delphi2010和Indy10,我正在尝试访问SSL服务。我想如果我能让Fiddler看到我的HTTP流量,事情会容易得多。我在StackOverflow上看到的帖子表明,让Fiddler看到你的Indy流量没什么大不了的,你只需要配置端口就可以了。我的问题是,您如何做到这一点?

到目前为止,我的代码如下:

代码语言:javascript
复制
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中获得此流量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-11 08:00:46

通过设置ProxyParams,可以轻松地将Indy设置为使用代理fiddler提供的代理:

代码语言:javascript
复制
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事件包含发送和接收的完整标头以及回复数据:

代码语言:javascript
复制
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;
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9236400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档