httpclient设置本机出口IP

若本机存在多个物理或虚拟网卡,绑定多个IP,此方法可以设置httpclient绑定某一个IP进行网络访问。

通过getparams方法取得params对象再设置属性的方法在httpclient4.3中已经被废弃:

 * @deprecated (4.3) use
 *   {@link org.apache.http.client.config.RequestConfig}.
CloseableHttpClient client = ...;

byte ip[] = new byte[] { (byte) 192, (byte) 168, 1, 105 };

client.getParams().setParameter(ConnRouteParams.LOCAL_ADDRESS,InetAddress.getByAddress(ip));

因此使用RequestConfig方法代替,如下:

CloseableHttpClient client = java;
byte ip[] = new byte[] { (byte) 192, (byte) 168, 1, 105 };
RequestConfig defaultRequestConfig = RequestConfig.custom()//
                .setSocketTimeout(2000)// socket 超时设置
                .setConnectTimeout(2000)// 链接超时设置
                .setLocalAddress(InetAddress.getByAddress(IP))
                .build();

HttpClientBuilder builder = HttpClientBuilder.create()//
                .setConnectionManager(connManager)// 注册连接管理器
                // .disableCookieManagement()// 禁用cookie管理,我们自己管理cookie
                // .disableAutomaticRetries()// 禁用重发机制(禁用后出现了许多错误请求,如Connection
                // reset 等)
                .disableRedirectHandling()// 禁用重定向机制(从HttpClient的层次取消对自动重定向的支持)
                .setUserAgent("default user-agent")// 设置默认的user agent
builder.disableContentCompression();
client = builder.build();
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值