SpringBoot_远程调用_Rest


restTemplate远程http/https调用

依赖pom.xml

	<dependency>
		<groupId>com.squareup.okhttp3</groupId>
		<artifactId>okhttp</artifactId>
	</dependency>

配置文件bootstrap.yml

配置源码

/**
 * http远程调用
 *
 * @author: vander
 * @create: 2018/12/04 21:54
 */
@Configuration
public class RestConfig {

	
	@Bean
	@LoadBalanced
	public RestTemplate restTemplate() {
		OkHttp3ClientHttpRequestFactory okHttp3ClientHttpRequestFactory = new OkHttp3ClientHttpRequestFactory(okHttpClient());
		okHttp3ClientHttpRequestFactory.setConnectTimeout(1000);
		return new RestTemplate(okHttp3ClientHttpRequestFactory);
	}

	@Bean
	public OkHttpClient okHttpClient() {
		X509TrustManager trustManager = (X509TrustManager) trustAllCerts[0];
		OkHttpClient.Builder builder = new OkHttpClient.Builder();
		builder.connectTimeout(30, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS)
				.writeTimeout(30, TimeUnit.SECONDS).retryOnConnectionFailure(true)
				.sslSocketFactory(getTrustedSSLSocketFactory(),trustManager).hostnameVerifier(DO_NOT_VERIFY);
		return builder.build();
	}

	TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
		public java.security.cert.X509Certificate[] getAcceptedIssuers() {
			X509Certificate[] x509Certificates = new X509Certificate[0];
			return x509Certificates;
		}

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

		public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
		}
	} };

	HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() {
		@Override
		public boolean verify(String hostname, SSLSession session) {
			return true;
		}
	};

	private SSLSocketFactory getTrustedSSLSocketFactory() {
		try {
			SSLContext sc = SSLContext.getInstance("SSL");
			sc.init(null, trustAllCerts, new java.security.SecureRandom());
			return sc.getSocketFactory();
		} catch (KeyManagementException | NoSuchAlgorithmException e) {
			e.printStackTrace();
			return null;
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_15764943/article/details/87791689