我想用idhttp设置代理连接某服务器接口,所有的代理地址放在一个文本文件里
设置超时为3秒,3秒连不上或者3秒无返回,则自动读取文本里的下一个代理地址
自己写了下面这段代码,不知对不对,烦请各位大侠指点:proxylistnumber//文本里的代理地址的数量
proxylist是tstringlist,获取文本里的代理地址 for k :=0 to proxylistnumber-1 do
begin
idhttp1.ProxyParams.ProxyServer :=proxylist.Strings[k];
idhttp1.ProxyParams.ProxyPort :=80;
idhttp1.readtimeout :=3000;
idhttp1.Connect; try
idhttp1.Get('url'); except
end; if idhttp1.ResponseCode=200 then //如果未超时,就跳出循环,执行后面
begin
break;
end
else
idhttp1.Disconnect;//如果超时,则继续读取文本里的下一个代理地址尝试
end;不知我上面这么写代码对不对?烦请各位大侠看看上面的代码,是不是能实现我的意思呢?如果我写的不对,还望给个详细的代码。在此先谢了。
设置超时为3秒,3秒连不上或者3秒无返回,则自动读取文本里的下一个代理地址
自己写了下面这段代码,不知对不对,烦请各位大侠指点:proxylistnumber//文本里的代理地址的数量
proxylist是tstringlist,获取文本里的代理地址 for k :=0 to proxylistnumber-1 do
begin
idhttp1.ProxyParams.ProxyServer :=proxylist.Strings[k];
idhttp1.ProxyParams.ProxyPort :=80;
idhttp1.readtimeout :=3000;
idhttp1.Connect; try
idhttp1.Get('url'); except
end; if idhttp1.ResponseCode=200 then //如果未超时,就跳出循环,执行后面
begin
break;
end
else
idhttp1.Disconnect;//如果超时,则继续读取文本里的下一个代理地址尝试
end;不知我上面这么写代码对不对?烦请各位大侠看看上面的代码,是不是能实现我的意思呢?如果我写的不对,还望给个详细的代码。在此先谢了。
另外Connect需要先设置URI。所以你不能直接调用Connect,而是直接调用Get
麻烦给个代码吧
proxylist是tstringlist,获取文本里的代理地址 for k :=0 to proxylistnumber-1 do
begin
idhttp1.ProxyParams.ProxyServer :=proxylist.Strings[k];
idhttp1.ProxyParams.ProxyPort :=80;
idhttp1.readtimeout :=3000;
idhttp1.connecttimeout :=3000;
try
idhttp1.Get('url'); except
end; if idhttp1.ResponseCode=200 then //如果未超时,就跳出循环,执行后面
begin
break;
end
else
idhttp1.Disconnect;//如果超时,则继续读取文本里的下一个代理地址尝试
end; showmessage(proxylist.Strings[k]);//有代理地址能连上,就显示个信息结果还是没信息显示,怎么判断能不能连上啊?
用break不对?
难道大家都没用过idhttp的代理连接么?