有没有办法使用java.net.Proxy类配置HTTPS代理? 我想使用来自Java客户端的HTTPS代理与HTTP目标进行通信。
提前致谢。
答案 0 :(得分:0)
以下是如何以编程方式设置代理的简约示例:
SocketAddress a = new InetSocketAddress("proxy.example.com", 8080);
Proxy p = new Proxy(Proxy.Type.HTTP, a);
ProxySelector ps = new ProxySelector() {
public List<Proxy> select(URI uri) { return Collections.singletonList(p); }
public void connectFailed(URI uri, SocketAddress sa, IOException ioe) {}
};
ProxySelector.setDefault(ps);
实际代码当然应该在connectFailed
中做一些明智的事情,如果应用程序也将使用代理服务器不支持的其他方案,请检查select
中的URI方案。在后一种情况下,它应该返回一个类型为Proxy.Type.DIRECT
的Proxy实例,这将导致连接绕过代理。
我只使用了http和https网址,因此我不知道它是否适用于任何其他方案。对于https URL,代理服务器需要支持CONNECT方法。