我在从 eclipse 发送 https 请求时遇到问题。当我运行此代码时,它工作正常。
public class HttpConnectionTest extends TestCase{
@Test
public void testConnection() throws HttpException, IOException {
int statusCode = new HttpClient().executeMethod(new GetMethod("http://www.google.com"));
assertTrue(statusCode == HttpStatus.SC_OK);
}
}
但是当我为“https://www.google.com”运行相同的代码时,我得到以下异常;
java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:618)
at sun.security.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:451)
at sun.security.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:140)
at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:81)
at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:126)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:706)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:386)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324)
at adcWeb.HttpConnectionTest.testConnection(HttpConnectionTest.java:26)
我正在通过代理连接到互联网。我的网络设置是like this ;我看到有些人说禁用 socks ,但 eclipse 不允许我取消选中 socks 选项(我正在使用 eclipse luna)
最佳答案
我相信您在 eclipse 设置中配置的代理是用于插件和 IDE 相关的东西..
您必须在运行时在代码中设置代理,如下所示:
关于java - eclipse 使用 https 时出现代理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27718025/