JAVA通过代理IP发送HTTP请求

文中基于apache的httpclient 4.5.2,代理服务器有用户名密码鉴权。

首先,对于鉴权,我们需要设置身份认证,并通过配置的身份认证信息来创建一个httpclient;

接下来需要创建一个代理,并设置到请求信息中;

最后是执行请求。

代码如下:

        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(
                new AuthScope(代理IP, 代理port),
                new UsernamePasswordCredentials(鉴权用户名, 鉴权密码));

        CloseableHttpClient client = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();

        HttpHost proxy = new HttpHost(代理IP, 代理port);
        RequestConfig config = RequestConfig.custom().setProxy(proxy).build();

        HttpPost req = new HttpPost(目标URL);// GET请求用HttpGet
        req.setConfig(config);
        CloseableHttpResponse resp = client.execute(req);
        try {
            System.out.println(resp);
        } finally {
            resp.close();
        }
在测试中笔者犯了几个很低级的错误,首先目标URL不能是localhost/127.0.0.1,因为这样其实代理服务器请求的是自己,但是因为代理服务器本地并没有部署对应服务,所以会返回失败,笔者这里返回的是503错误。另一个是因为笔者请求的代理是部署在公有云上的,如果使用的是内网IP也是不行的,因为根本找不到那个IP,所以使用前要确认代理是部署在哪的。


参考文献:

https://blog.csdn.net/ktlifeng/article/details/51099370

https://blog.csdn.net/zhangbin666/article/details/78351096?locationNum=4&fps=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值