做淘宝客网站需要什么资质,网站建设的参考文献英文,给一个网站,茂名住房证书城乡建设局官方网站在Java中#xff0c;有多种方式可以实现HTTP或HTTPS请求。以下是使用第三方库Apache HttpClient来实现HTTP/HTTPS请求的工具类。
优势和特点
URIBuilder的优势在于它提供了一种简单而灵活的方式来构造URI#xff0c;帮助开发人员避免手动拼接URI字符串#xff0c;并处理参…在Java中有多种方式可以实现HTTP或HTTPS请求。以下是使用第三方库Apache HttpClient来实现HTTP/HTTPS请求的工具类。
优势和特点
URIBuilder的优势在于它提供了一种简单而灵活的方式来构造URI帮助开发人员避免手动拼接URI字符串并处理参数的编码和转义。此外URIBuilder还提供了其他一些有用的方法例如添加路径段、设置查询字符串等。这使得URI的构建过程更加清晰和易于管理。
使用 Apache HttpClient
要使用Apache HttpClient你首先需要将HttpClient库添加到你的项目中。如果你使用Maven可以在pom.xml中添加以下依赖 dependency groupIdorg.apache.httpcomponents/groupId artifactIdhttpclient/artifactId version4.5.13/version !-- 使用时请检查最新版本 -- /dependency 然后你可以使用以下代码示例来发送HTTP请求 import org.apache.commons.collections.MapUtils; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.utils.URIBuilder; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.conn.ssl.TrustStrategy; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.ssl.SSLContextBuilder; import org.apache.http.util.EntityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLContext; import java.io.IOException; import java.security.KeyManagementException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.HashMap; import java.util.Map; public class HttpsUtils { private static Logger logger LoggerFactory.getLogger(HttpsUtils.class); static CloseableHttpClient httpClient; static CloseableHttpResponse httpResponse; public static CloseableHttpClient createSSLClientDefault() { try { SSLContext sslContext new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { // 信任所有 public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { return true; } }).build(); HostnameVerifier hostnameVerifier NoopHostnameVerifier.INSTANCE; SSLConnectionSocketFactory sslsf new SSLConnectionSocketFactory(sslContext, hostnameVerifier); return HttpClients.custom().setSSLSocketFactory(sslsf).build(); } catch (KeyManagementException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (KeyStoreException e) { e.printStackTrace(); } return HttpClients.createDefault(); } /** * 发送https||http get请求 * * throws Exception */ public static String sendByHttpGet(MapString, Object params, String url) { try { URIBuilder uriBuilder new URIBuilder(url); if(MapUtils.isNotEmpty(params)) { for (Map.EntryString, Object entry : params.entrySet()) { uriBuilder.setParameter(entry.getKey(), entry.getValue().toString()); } } HttpGet httpGet new HttpGet(uriBuilder.build()); httpGet.addHeader(Content-type, application/json; charsetutf-8); httpGet.setHeader(Accept, application/json); httpClient HttpsUtils.createSSLClientDefault(); httpResponse httpClient.execute(httpGet); HttpEntity httpEntity httpResponse.getEntity(); if (httpEntity ! null) { String jsObject EntityUtils.toString(httpEntity, UTF-8); return jsObject; } else { return null; } } catch (Exception e) { e.printStackTrace(); logger.error(description : {{}} ,details : {{}}, 请求异常, e.getStackTrace()); } finally { try { httpResponse.close(); httpClient.close(); } catch (IOException e) { logger.error(description : {{}} ,details : {{}}, 请求流关闭异常, e.getStackTrace()); e.printStackTrace(); } } return null; } /** * 发送https||http get请求 * * throws Exception */ public static byte[] sendByteByHttpGet(MapString, Object params, String url) { try { URIBuilder uriBuilder new URIBuilder(url); if(MapUtils.isNotEmpty(params)) { for (Map.EntryString, Object entry : params.entrySet()) { uriBuilder.setParameter(entry.getKey(), entry.getValue().toString()); } } HttpGet httpGet new HttpGet(uriBuilder.build()); httpGet.addHeader(Content-type, application/json; charsetutf-8); httpGet.setHeader(Accept, application/json); httpClient HttpsUtils.createSSLClientDefault(); httpResponse httpClient.execute(httpGet); HttpEntity httpEntity httpResponse.getEntity(); if (httpEntity ! null) { byte[] bytes EntityUtils.toByteArray(httpEntity); return bytes; } else { return new byte[0]; } } catch (Exception e) { e.printStackTrace(); logger.error(description : {{}} ,details : {{}}, 读取二进制保存的图片异常, e.getStackTrace()); } finally { try { httpResponse.close(); httpClient.close(); } catch (IOException e) { e.printStackTrace(); logger.error(description : {{}} ,details : {{}}, 读取二进制保存的图片关闭流时异常, e.getStackTrace()); } } return new byte[0]; } }