栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Apache HTTP Client 4中使用Socks 5代理?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Apache HTTP Client 4中使用Socks 5代理?

SOCK是TCP / IP级别的代理协议,而不是HTTP。开箱即用不支持HttpClient。

可以使用自定义连接套接字工厂自定义HttpClient以通过SOCKS代理建立连接

编辑: 更改为SSL而不是普通套接字

Registry<ConnectionSocketFactory> reg = RegistryBuilder.<ConnectionSocketFactory>create()        .register("http", PlainConnectionSocketFactory.INSTANCE)        .register("https", new MyConnectionSocketFactory(SSLContexts.createSystemDefault()))        .build();PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(reg);CloseableHttpClient httpclient = HttpClients.custom()        .setConnectionManager(cm)        .build();try {    InetSocketAddress socksaddr = new InetSocketAddress("mysockshost", 1234);    HttpClientContext context = HttpClientContext.create();    context.setAttribute("socks.address", socksaddr);    HttpHost target = new HttpHost("localhost", 80, "http");    HttpGet request = new HttpGet("/");    System.out.println("Executing request " + request + " to " + target + " via SOCKS proxy " + socksaddr);    CloseableHttpResponse response = httpclient.execute(target, request, context);    try {        System.out.println("----------------------------------------");        System.out.println(response.getStatusLine());        EntityUtils.consume(response.getEntity());    } finally {        response.close();    }} finally {    httpclient.close();}

static class MyConnectionSocketFactory extends SSLConnectionSocketFactory {    public MyConnectionSocketFactory(final SSLContext sslContext) {        super(sslContext);    }    @Override    public Socket createSocket(final HttpContext context) throws IOException {        InetSocketAddress socksaddr = (InetSocketAddress) context.getAttribute("socks.address");        Proxy proxy = new Proxy(Proxy.Type.SOCKS, socksaddr);        return new Socket(proxy);    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/437908.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号