Https 例子:
HttpHost host = new HttpHost(ip, 443, "https");
public CloseableHttpClient createHttpsClient() {
X509TrustManager x509mgr = new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] xcs, String string) {
}
@Override
public void checkServerTrusted(X509Certificate[] xcs, String string) {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, new TrustManager[] { x509mgr }, null);
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
return HttpClients.custom().setSSLSocketFactory(sslsf).build();
}
Basic Auth:
HttpHost host = new HttpHost(ip, 443, "https");
private HttpClientContext createBasicAuthContext(String username, String password) {
CredentialsProvider credsProvider = new BasicCredentialsProvider();
Credentials defaultCreds = new UsernamePasswordCredentials(username, password);
credsProvider.setCredentials(new AuthScope(host.getHostName(), host.getPort()), defaultCreds);
AuthCache authCache = new BasicAuthCache();
BasicScheme basicAuth = new BasicScheme();
authCache.put(host, basicAuth);
HttpClientContext context = HttpClientContext.create();
context.setCredentialsProvider(credsProvider);
context.setAuthCache(authCache);
return context;
}
doGet:
private CloseableHttpResponse doGet(String url, Map<String, String> headers) throws IOException {
HttpGet get = new HttpGet(url);
for (Map.Entry<String, String> header : headers.entrySet()) {
get.setHeader(header.getKey(), header.getValue());
}
HttpContext context = createBasicAuthContext("admin", "password");
CloseableHttpResponse response = client.execute(host, get, context);
try {
// status = response.getStatusLine().getStatusCode();
// headers = response.getAllHeaders();
// HttpEntity entity = response.getEntity();
// text = IOUtils.toString(entity.getContent(), "ISO-8859-1");
return response;
} finally {
response.close();
}
}
doPost:
private void doPost(String url, Map<String, String> headers, String body) throws IOException {
HttpPost post = new HttpPost(url);
for (Map.Entry<String, String> header : headers.entrySet()) {
post.setHeader(header.getKey(), header.getValue());
}
post.setEntity(new StringEntity(body));
HttpContext context = createBasicAuthContext("admin", "password");
CloseableHttpResponse response = client.execute(host, post, context);
try {
// status = response.getStatusLine().getStatusCode();
// headers = response.getAllHeaders();
// HttpEntity entity = response.getEntity();
// text = IOUtils.toString(entity.getContent(), "ISO-8859-1");
} finally {
response.close();
}
}