java借助代理ip,解决访问api频繁导致ip被禁的问题

当项目需要频繁访问如豆瓣API等有限制的服务时,遇到IP被禁问题。由于无法申请API-key,采用代理IP成为解决方案。本文介绍了如何在Java中设置代理IP,包括两种方法:通过System.setProperty()方法和创建Proxy对象。同时,分享了验证代理IP是否有效的方法,即通过访问提供IP查询的API来检查返回的IP是否与使用的代理IP一致。
摘要由CSDN通过智能技术生成

之前做的一个项目需要频繁地访问豆瓣的api,但是豆瓣api对访问次数是有限制的,同一个ip访问过于频繁就会被禁一段时间。原本可以申请api-key来放宽限制,但貌似现在豆瓣已经不开放申请了。
不仅是豆瓣api,爬取网页时也会有ip被禁的情况。这时使用代理ip就可以解决这样的问题。
所谓代理ip,也就是让别的服务器代替你发送请求,然后再把结果返回给你。直接在百度上搜索免费代理ip,就能看到一堆网页提供代理ip列表的,直接把它们的ip地址和端口复制下来就能用了。收集一定数目的可用代理ip,建立一个代理ip池,就能实现目的了。
在java中有两种使用代理ip的方式:

  • 直接调用System.setProperty()方法:
System.setProperty("proxyHost",host[i]);
System.setProperty("proxyPort",port[i]);
  • 创建proxy:
    SocketAddress addr = new InetSocketAddress(host[0], Integer.parseInt(port[0])); 
    Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
    在建立http连接时:
    URL url = new URL(访问的url); 
    HttpURLConnection connection = (HttpURLConnection) url.openConnection(ProxyUtil.getProxy());
    connection.setRequest
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值