JAVA 에서 자주 사용 하 는 프 록 시 설정
최근 에는 웹 의 OpenApi 를 연구 하고 있다.
프 록 시 를 꼭 사용 해 야 할 방법 이 없습니다. 제 가 전에 httpclient 의 프 록 시 사용 방식 을 소개 한 글 이 있 습 니 다.
기본 자바 의 에이전트 사용 방식 을 소개 합 니 다.
가장 많이 사용 되 는 전역 설정 에이전트 입 니 다.
Properties prop = System.getProperties();
// HTTP IP
prop.setProperty("http.proxyHost", "10.28.0.254");
// HTTP
prop.setProperty("http.proxyPort", "80");
//
prop.setProperty("http.nonProxyHosts", "localhost|10.28.0.*");
// HTTPS
prop.setProperty("https.proxyHost", "10.28.0.254");
prop.setProperty("https.proxyPort", "443");
// http.nonProxyHosts https.nonProxyHosts
//FTP
prop.setProperty("ftp.proxyHost", "192.168.0.254");
prop.setProperty("ftp.proxyPort", "2121");
prop.setProperty("ftp.nonProxyHosts", "localhost|192.168.0.*");
//SOCKS
prop.setProperty("socksProxyHost", "192.168.0.254");
prop.setProperty("socksProxyPort", "8000");
때로는 에이전트 가 인증 을 해 야 할 때 계승 클래스 Authenticator 의 클래스 를 정의 해 야 합 니 다.
public class MyAuthenticator extends Authenticator {
private String username = "";
private String password = "";
public MyAuthenticator(String username, String password) {
this.username = username;
this.password = password;
}
protected PasswordAuthentication getPasswordAuthentication() {
returnnew PasswordAuthentication(username, password.toCharArray());
}
}
//
Authenticator.setDefault(new MyAuthenticator("userName", "Password"));
물론 이 방법 은 대부분의 수 요 를 만족 시 킬 수 있 지만 한계 가 있다.
모든 연결 이 통 일 된 속성 을 통 해 프 록 시 설정 을 하 는 것 으로 특정 연결 에 대해 프 록 시 설정 을 할 수 없습니다.
JDK 5 및 그 이후 버 전에 서 새로운 프 록 시 설정 을 도입 하면 특정 연결 에 대한 설정 을 만족 시 킬 수 있 습 니 다.
URL url = new URL("http://www.shanhe114.com");
//
InetSocketAddress addr = new InetSocketAddress("10.28.0.4",
8080);
//Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr); //SOCKS
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); //HTTP
// Proxy.Type
URLConnection conn = url.openConnection(proxy);
InputStream in = conn.getInputStream();
//InputStream in = url.openStream();
String content = IOUtils.toString(in);
System.out.println(content);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.