심지어 같은 예외가 발생합니다. java.net.ConnectException : 연결 시간이 초과되었습니다 : 프록시에 & 포트를 코드에 추가하지 않으면 연결하십시오.
java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.<init>(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.New(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
at edu.sandip.TestURLConnection.main(TestURLConnection.java:23)
이 예외는 조직 프록시에서 조직의 코드를 실행하고 있기 때문에 발생합니다.
아래 수정 된 코드를 사용하십시오. 200 OK를 responseCode로 가져옵니다.
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import javax.net.ssl.HttpsURLConnection;
public class TestURLConnection {
/**
* @param args
*/
public static void main(String[] args) {
try{
URL url = new URL("https://www.google.com/");
System.setProperty("https.proxyHost", "XXX.XXX.XXX.XX");
System.setProperty("https.proxyPort", "80");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
//HttpsURLConnection connection = (HttpsURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
int code = connection.getResponseCode();
System.out.println("code: "+code);
} catch (Exception e) {
e.printStackTrace();
}
}
}
참고 : 1. 당신은 당신의 조직 네트워크 관리자에서 proxyHost IP를 얻을 필요가있다. 2. https URL에 액세스하려면 HttpsURLConnection을 사용해야합니다.
그러나 예외 만 표시합니다. 그 예외는 무엇입니까? –
연결 시간이 초과되었습니다. – anonymous
연결 시간 초과가 HTTP 응답 코드가 아닙니다. 전혀 응답이 없었습니다. – Thilo