답변:
java 1.5부터 java.net.Proxy 인스턴스를 openConnection(proxy)
메소드에 전달할 수도 있습니다 .
//Proxy instance, proxy ip = 10.0.0.1 with port 8080
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("10.0.0.1", 8080));
conn = new URL(urlString).openConnection(proxy);
프록시가 인증을 요구하면 응답 407을 제공합니다.
이 경우 다음 코드가 필요합니다.
Authenticator authenticator = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return (new PasswordAuthentication("user",
"password".toCharArray()));
}
};
Authenticator.setDefault(authenticator);
new PasswordAuthentication("domainName\\user", "password".toCharArray());
프록시는 http.proxyHost 및 http.proxyPort의 두 가지 시스템 속성을 통해 지원됩니다. 프록시 서버와 포트로 각각 설정해야합니다. 다음은 기본 예입니다.
String url = "http://www.google.com/",
proxy = "proxy.mydomain.com",
port = "8080";
URL server = new URL(url);
Properties systemProperties = System.getProperties();
systemProperties.setProperty("http.proxyHost",proxy);
systemProperties.setProperty("http.proxyPort",port);
HttpURLConnection connection = (HttpURLConnection)server.openConnection();
connection.connect();
InputStream in = connection.getInputStream();
readResponse(in);
commons-httpclient
? Java가 프록시 및 인증을 지원하므로 (여기서 stackoverflow.com/questions/1626549/… 참조 ), 간단한 경우 (공용 HTTP 서버에서 하나의 파일 검색과 같은) Apache 라이브러리를 사용할 이유가 없습니다. 당신의 추천은 무엇입니까?
systemProperties
는 connection
!
설정할 수도 있습니다
-Djava.net.useSystemProxies=true
Windows 및 Linux에서는 시스템 설정을 사용하므로 반복 할 필요가 없습니다 (DRY)
http://docs.oracle.com/javase/7/docs/api/java/net/doc-files/net-properties.html#Proxies
System.setProperty
에 대한 https.proxyHost
과 https.proxyPort
몇 가지 이유가 겨자를 절단되지 않았다.
Connection을 열기 전에 다음을 설정하십시오.
System.setProperty("http.proxyHost", "host");
System.setProperty("http.proxyPort", "port_number");
프록시에 인증이 필요한 경우
System.setProperty("http.proxyUser", "user");
System.setProperty("http.proxyPassword", "password");
Java 1.8 이상의 경우 -Djdk.http.auth.tunneling.disabledSchemes=
https를 사용하여 기본 권한 부여를 사용하여 프록시를 작성하도록 설정해야합니다 .
프록시 호스트와 포트 =)를 알고 있으면 승인 된 답변이 작동합니다. 그러나 프록시 호스트와 포트를 찾고 있다면 아래 단계가 도움이 될 것입니다.
자동 구성된 프록시가 제공된 경우 :
1> 열린 IE (또는 모든 브라우저)
2> IE-> 도구-> 인터넷 옵션-> 연결-> LAN 설정-> 주소 가져 오기를 통해 브라우저에서 URL 주소를 가져 와서 URL 을 입력하십시오 ( 예 : http://autocache.abc.com/ ). 파일은 .pac 형식으로 다운로드되어 바탕 화면에 저장됩니다
3> 텍스트 패드에서 .pac 파일을 열고 PROXY를 식별하십시오.
편집기에서 다음과 같이 나타납니다.
"PROXY web-proxy.ind.abc.com:8080; PROXY proxy.sgp.abc.com:8080"을 반환합니다.
5 분 안에 maven에서 bekur로 작동하지 않는 kudos
일단 당신이 호스트와 포트를 가지고 이것과 당신의 좋은에 팝업
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("web-proxy.ind.abc.com", 8080));
URLConnection connection = new URL(url).openConnection(proxy);