通过实现Callable接口,实现多线程程序时发现, call方法为@Override的无法直接在方法上传递参数,在网上找到了解决办法,通过构造方法传递参数放上代码
private int taskNum;
private String ip;
private int port;
public VerifyProxy(int taskNum, String ip, int port) {
this.taskNum = taskNum;
this.ip=ip;
this.port=port;
}
/**
* 验证代理ip是否可用
* @return
* @throws Exception
*/
@Override
public Object call() throws Exception {
try {
System.out.println(ip+port);
Jsoup.connect("https://www.baidu.com")
.timeout(10 * 1000)
.proxy(ip, port)
.get();
logger.info("该代理可用地址为{}{}",ip,port);
return taskNum +"true" ;
} catch (Exception e) {
logger.info("该代理不可用地址为{}{}",ip,port);
return taskNum+"false";
}
}