首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运算符不适用于此操作数type+Socks+SSL

运算符不适用于此操作数type+Socks+SSL
EN

Stack Overflow用户
提问于 2017-08-20 19:21:02
回答 1查看 169关注 0票数 0

尝试一些代理的东西,我得到这个错误:Operator not applicable to this operand type,我以前使用可视化组件,它是好的,现在我改变了我得到下面的this..code的代码。

代码语言:javascript
复制
  var 
    lHTTP: TIdHTTP;
    IdSSL: TIdSSLIOHandlerSocketOpenSSL;
    Socks : TIdSocksInfo;
    Host, Port : String;
  begin
    try
    lHTTP := TIdHTTP.Create(nil);
    IdSSL := TIdSSLIOHandlerSocketOpenSSL.Create(lHTTP);


      lHTTp.ReadTimeout := 60000;

      IdSSL.SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2];

      IdSSL.SSLOptions.Mode := sslmClient;
      IdSSL.TransparentProxy := Socks.Create(lHTTP);

      (IdSSL.TransparentProxy as Socks).Port := Port.ToInteger(); //Error
      (IdSSL.TransparentProxy as Socks).Host := Host;            //Error

      (IdSSL.TransparentProxy as Socks).Version := svSocks5;  //Error

      lHTTP.IOHandler := IdSSL;
      lHTTP.HandleRedirects := True;

   end;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-21 10:00:51

你的类型转换是错误的,这就是你得到错误的原因。您需要强制转换为类型,而不是变量名:

代码语言:javascript
复制
(IdSSL.TransparentProxy as TIdSocksInfo).Port := Port.ToInteger;
(IdSSL.TransparentProxy as TIdSocksInfo).Host := Host;
(IdSSL.TransparentProxy as TIdSocksInfo).Version := svSocks5;

一个更好的选择是使用您声明的变量,并且根本不使用类型转换:

代码语言:javascript
复制
Socks := Socks.Create(lHTTP);
Socks.Port := Port.ToInteger;
Socks.Host := Host;
Socks.Version := svSocks5;
IdSSL.TransparentProxy := Socks;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45781575

复制
相关文章

相似问题

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