[フレーム]
Last Updated: April 20, 2021
·
5.599K
· xandout

Java - Ignore SSL Errors

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.HttpClientConnectionManager;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.conn.BasicHttpClientConnectionManager;
import org.apache.http.util.EntityUtils;

import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.io.IOException;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;

/**
 * Created by mturner on 4/11/16.
 */
public class RestClient {

 public static int getHttpCode(URL url) throws IOException {

 HttpClient client = null;
 try {
 client = getAllSSLClient();
 } catch (KeyStoreException | NoSuchAlgorithmException | KeyManagementException e) {
 e.printStackTrace();
 }
 HttpGet request = new HttpGet(url.toString());
 HttpResponse response = null;
 if (client == null) throw new AssertionError();
 response = client.execute(request);
 return response.getStatusLine().getStatusCode();

 }

 public static String getString(URL url) throws IOException {

 HttpClient client = null;
 try {
 client = getAllSSLClient();
 } catch (KeyStoreException | NoSuchAlgorithmException | KeyManagementException e) {
 e.printStackTrace();
 }
 HttpGet request = new HttpGet(url.toString());
 HttpResponse response = null;
 if (client == null) throw new AssertionError();
 response = client.execute(request);
 return EntityUtils.toString(response.getEntity());
 }

 public static HttpClient getAllSSLClient() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {


 TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {

 @Override
 public java.security.cert.X509Certificate[] getAcceptedIssuers() {
 return null;
 }

 @Override
 public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {
 }

 @Override
 public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
 }
 }};
 SSLContext context = SSLContext.getInstance("SSL");
 context.init(null, trustAllCerts, null);

 HttpClientBuilder builder = HttpClientBuilder.create();
 SSLConnectionSocketFactory sslConnectionFactory = new SSLConnectionSocketFactory(context, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
 builder.setSSLSocketFactory(sslConnectionFactory);

 PlainConnectionSocketFactory plainConnectionSocketFactory = new PlainConnectionSocketFactory();
 Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
 .register("https", sslConnectionFactory)
 .register("http", plainConnectionSocketFactory)
 .build();

 HttpClientConnectionManager ccm = new BasicHttpClientConnectionManager(registry);

 builder.setConnectionManager(ccm);

 return builder.build();

 }
}

AltStyle によって変換されたページ (->オリジナル) /