如何用Java HttpClient配置socks代理示例代码实现?

2026-04-30 06:582阅读0评论SEO问题
  • 内容介绍
  • 相关推荐

本文共计376个文字,预计阅读时间需要2分钟。

如何用Java HttpClient配置socks代理示例代码实现?

yamlHttpClient实现socks代理,使用的环境配置如下:

- 依赖:groupId: org.apache.httpcomponents, artifactId: httpclient, version: 4.4.1- 依赖:groupId: org.apache.httpcomponents, artifactId: httpcore, version: (缺失部分,需要补充)

HttpClient 实现 socks 代理

使用的环境

如何用Java HttpClient配置socks代理示例代码实现?

<dependency> <groupId>org.apache.www.cnblogs.com/"); } public static void test(String url) throws Exception{ // ConnectionSocketFactory注册 Registry<ConnectionSocketFactory> reg = RegistryBuilder.<ConnectionSocketFactory>create() .register("http", new MyConnectionSocketFactory()) .register("https",new MySSLConnectionSocketFactory()).build(); // HTTP客户端连接管理池 PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(reg); CloseableHttpClient httpclient = HttpClients.custom() .setConnectionManager(connManager) .build(); try { // socks代理地址 , socks 地址和端口,这里随便写了一个1008 InetSocketAddress socksaddr = new InetSocketAddress("你的地址", 1008); HttpClientContext context = HttpClientContext.create(); context.setAttribute("socks.address", socksaddr); // 请求目标 HttpGet request = new HttpGet(url); System.out.println("----------------------------------------"); System.out.println("执行请求 :" + request.getRequestLine()); System.out.println("通过代理: " + socksaddr); System.out.println("----------------------------------------"); CloseableHttpResponse response = httpclient.execute(request, context); try { HttpEntity entity = response.getEntity(); System.out.println("----------------------------------------"); System.out.println("返回响应:" + response.getStatusLine()); System.out.println("响应内容:" + EntityUtils.toString(entity)); System.out.println("----------------------------------------"); } finally { response.close(); } } finally { httpclient.close(); } } /** * 实现 http 链接的socket 工厂 */ static class MyConnectionSocketFactory extends PlainConnectionSocketFactory { @Override public Socket createSocket(final HttpContext context) throws IOException { InetSocketAddress socksaddr = (InetSocketAddress) context.getAttribute("socks.address"); // socket代理 Proxy proxy = new Proxy(Proxy.Type.SOCKS, socksaddr); return new Socket(proxy); } } /** * 实现 https 链接的socket 工厂 */ static class MySSLConnectionSocketFactory extends SSLConnectionSocketFactory { public MySSLConnectionSocketFactory() { super(SSLContexts.createDefault(), getDefaultHostnameVerifier()); } @Override public Socket createSocket(final HttpContext context) throws IOException { InetSocketAddress socksaddr = (InetSocketAddress) context.getAttribute("socks.address"); // // socket代理 Proxy proxy = new Proxy(Proxy.Type.SOCKS, socksaddr); return new Socket(proxy); } } }

以上就是Java HttpClient 实现 socks 代理的示例代码的详细内容,更多关于Java HttpClient 实现 socks 代理的资料请关注易盾网络其它相关文章!

本文共计376个文字,预计阅读时间需要2分钟。

如何用Java HttpClient配置socks代理示例代码实现?

yamlHttpClient实现socks代理,使用的环境配置如下:

- 依赖:groupId: org.apache.httpcomponents, artifactId: httpclient, version: 4.4.1- 依赖:groupId: org.apache.httpcomponents, artifactId: httpcore, version: (缺失部分,需要补充)

HttpClient 实现 socks 代理

使用的环境

如何用Java HttpClient配置socks代理示例代码实现?

<dependency> <groupId>org.apache.www.cnblogs.com/"); } public static void test(String url) throws Exception{ // ConnectionSocketFactory注册 Registry<ConnectionSocketFactory> reg = RegistryBuilder.<ConnectionSocketFactory>create() .register("http", new MyConnectionSocketFactory()) .register("https",new MySSLConnectionSocketFactory()).build(); // HTTP客户端连接管理池 PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(reg); CloseableHttpClient httpclient = HttpClients.custom() .setConnectionManager(connManager) .build(); try { // socks代理地址 , socks 地址和端口,这里随便写了一个1008 InetSocketAddress socksaddr = new InetSocketAddress("你的地址", 1008); HttpClientContext context = HttpClientContext.create(); context.setAttribute("socks.address", socksaddr); // 请求目标 HttpGet request = new HttpGet(url); System.out.println("----------------------------------------"); System.out.println("执行请求 :" + request.getRequestLine()); System.out.println("通过代理: " + socksaddr); System.out.println("----------------------------------------"); CloseableHttpResponse response = httpclient.execute(request, context); try { HttpEntity entity = response.getEntity(); System.out.println("----------------------------------------"); System.out.println("返回响应:" + response.getStatusLine()); System.out.println("响应内容:" + EntityUtils.toString(entity)); System.out.println("----------------------------------------"); } finally { response.close(); } } finally { httpclient.close(); } } /** * 实现 http 链接的socket 工厂 */ static class MyConnectionSocketFactory extends PlainConnectionSocketFactory { @Override public Socket createSocket(final HttpContext context) throws IOException { InetSocketAddress socksaddr = (InetSocketAddress) context.getAttribute("socks.address"); // socket代理 Proxy proxy = new Proxy(Proxy.Type.SOCKS, socksaddr); return new Socket(proxy); } } /** * 实现 https 链接的socket 工厂 */ static class MySSLConnectionSocketFactory extends SSLConnectionSocketFactory { public MySSLConnectionSocketFactory() { super(SSLContexts.createDefault(), getDefaultHostnameVerifier()); } @Override public Socket createSocket(final HttpContext context) throws IOException { InetSocketAddress socksaddr = (InetSocketAddress) context.getAttribute("socks.address"); // // socket代理 Proxy proxy = new Proxy(Proxy.Type.SOCKS, socksaddr); return new Socket(proxy); } } }

以上就是Java HttpClient 实现 socks 代理的示例代码的详细内容,更多关于Java HttpClient 实现 socks 代理的资料请关注易盾网络其它相关文章!