首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Indy 10 HTTPS代理

Indy 10 HTTPS代理
EN

Stack Overflow用户
提问于 2018-08-01 06:22:39
回答 1查看 1.7K关注 0票数 0

这里我有一个小程序,它使用idHTTP从https服务器下载一些东西。我需要修改这个程序来使用HTTPS代理服务器。代理1.1.1.1.8080用于HTTP,2.2.2.8084用于HTTPS。

我修改了代码如下:

代码语言:javascript
复制
  try
   IdHTTP1:=TIdHTTP.Create(nil);
   try
    LHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
    try
      // does not seem to do anything
      LHandler.TransparentProxy.Host:='2.2.2.2';
      LHandler.TransparentProxy.Port:=8084;
      LHandler.TransparentProxy.Enabled:=true;

      // this works even when using HTTP proxy for HTTPS
      idHTTP1.ProxyParams.ProxyServer:='1.1.1.1';
      idHTTP1.ProxyParams.ProxyPort:=8080;


      IdHTTP1.IOHandler:=LHandler;
      Src:= IdHTTP1.Get('https://csv.business.tomtom.com/extern?account='+company+'&username='+user+'&password='+password+'&apikey='+apikey+'&lang=en&action=showObjectReportExtern');
    finally
      LHandler.Free;
    end;
   finally
     IdHTTP1.Free;
   end;
  except on E: Exception do
//      Writeln(E.ClassName, ': ', E.Message);
  end;

有人能告诉我如何告诉idHTTP LHandler使用HTTPS代理吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-01 07:10:55

您只需要使用TIdHTTP.ProxyParams本身,并确保为您请求的协议方案(HTTPS)分配正确的HTTPS:

代码语言:javascript
复制
try
  IdHTTP1 := TIdHTTP.Create(nil);
  try
    LHandler := TIdSSLIOHandlerSocketOpenSSL.Create(IdHTTP1);
    IdHTTP1.IOHandler := LHandler;

    IdHTTP1.ProxyParams.ProxyServer := '2.2.2.2';
    IdHTTP1.ProxyParams.ProxyPort := 8084;

    Src := IdHTTP1.Get('https://csv.business.tomtom.com/extern?account='+company+'&username='+user+'&password='+password+'&apikey='+apikey+'&lang=en&action=showObjectReportExtern');
  finally
    IdHTTP1.Free;
  end;
except
  on E: Exception do
    // Writeln(E.ClassName, ': ', E.Message);
end;

TransparentProxy属性不像您认为的那样工作。

如果没有将TIdCustomTransparentProxy-derived组件显式地分配给TransparentProxy属性(而不是),则属性getter将创建默认的TIdSocksInfo组件。在这种情况下,您不希望使用SOCKS代理,而且TIdCustomTransparentProxy.Enabled属性是启用TIdSocksInfo的错误方式,因此必须使用TIdSocksInfo.Version属性。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51626590

复制
相关文章

相似问题

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