Java中使用SOCKS5代理,你可以使用Proxy类和ProxySelector接口。以下是一个简单的示例,演示如何通过SOCKS5代理连接到一个网站:
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.ProxySelector;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Collections;
import java.util.List;
public class Socks5Example {
public static void main(String[] args) {
// 设置SOCKS5代理主机和端口
String proxyHost = "your_socks5_proxy_host";
int proxyPort = 1080;
// 设置要访问的网站
String targetUrl = "http://www.example.com";
// 设置系统属性,告诉Java使用SOCKS5代理
System.setProperty("socksProxyHost", proxyHost);
System.setProperty("socksProxyPort", String.valueOf(proxyPort));
// 使用ProxySelector来设置代理
ProxySelector.setDefault(new ProxySelector() {
@Override
public List<Proxy> select(URI uri) {
return Collections.singletonList(new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(proxyHost, proxyPort)));
}
@Override
public void connectFailed(URI uri, SocketAddress sa, IOException ioe) {
// Handle connection failure if needed
}
});
// 现在可以使用Java的网络功能来连接到网站
try {
java.net.URL url = new java.net.URL(targetUrl);
java.net.URLConnection connection = url.openConnection();
// 进行进一步的操作,比如读取数据
} catch (java.io.IOException e) {
e.printStackTrace();
}
}
}
请替换your_socks5_proxy_host为实际的SOCKS5代理主机地址。这个例子中使用了ProxySelector,以确保只有特定的URI使用SOCKS5代理。在实际应用中,你可能需要根据你的需求进行更复杂的配置。确保在实际使用中处理异常和错误。