0
자바 크롤러를 작성하고 proxy
을 사용하고 어떤 https certification
도 무시해보십시오.UnsupportedOperationException이있는 내부 HttpClient.getParams()
그러나이 작동하지 않습니다는 (org.apache.http.impl.client.InternalHttpClient.getParams에서)
java.lang.UnsupportedOperationException가
와 나는 대부분 말할 솔루션을 검색 내 HttpClient
의 버전은 오래되었지만 아파치 웹 사이트에서 최신 버전으로 업데이트합니다.이 예외는 여전히 발생했습니다.
public static void main(String[] args) {
try{
TrustManager[] trustAllCerts = new TrustManager[] {
new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(X509Certificate[] certs, String authType) {}
public void checkServerTrusted(X509Certificate[] certs, String authType) {}
}
};
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(null, trustAllCerts, null);
LayeredConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(ctx);
CloseableHttpClient client = HttpClients.custom().setSSLSocketFactory(sslSocketFactory).build();
HttpHost proxy = new HttpHost("127.0.0.1", 8888,"http");
client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);
HttpGet request = new HttpGet("https://www.javaworld.com.tw/jute/post/view?bid=29&id=312144");
CloseableHttpResponse response = client.execute(request);
String entity = EntityUtils.toString(response.getEntity(), "utf-8");
System.out.println(entity);
}catch (Exception e) {
e.printStackTrace();
}
}
감사합니다 모든 솔루션에 대한 많은 :
다음 코드는 내 크롤러 코드입니다.
감사했다. 실례합니다. 새로운 SSLConnectionSocketFactory ( builder.build())의 '빌더'와 bundle.getString ("PROXY_HOST")의 'bundle'은 무엇을 의미합니까? – Akira
전체 메소드를 포함하도록 코드를 업데이트했습니다. 도움이 될 것입니다. – Clement