apache org doc :http://hc.apache.org/httpcomponents-client-ga/tutorial/html/fundamentals.html#d5e49
依赖: <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpmime --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.5</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.1</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.3</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency>
import java.security.KeyManagementException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.SSLContext; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.ssl.SSLContexts; import org.apache.http.ssl.TrustStrategy; import org.apache.log4j.Logger; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.util.EntityUtils; import org.apache.http.HttpStatus; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; public class HttpDemo { private static Logger LOGGER = Logger.getLogger(HttpDemo.class); static CloseableHttpResponse response; static HttpEntity entity; /** * this is ssl ignore https CloseableClient */ public static CloseableHttpClient sslIgnoreClient() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException { CloseableHttpClient client = null; SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, new TrustStrategy() { public boolean isTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException { return true; } }).build(); client = HttpClients.custom().setSSLContext(sslContext).setSSLHostnameVerifier(new NoopHostnameVerifier()).build(); return client; } /** * http get method */ static String doGet(String url, Map<Object, Object> header) throws KeyStoreException, IOException, KeyManagementException, NoSuchAlgorithmException { String result = null; // initialize result CloseableHttpClient request = sslIgnoreClient(); HttpGet msg = new HttpGet(url); if (header != null) { header.forEach((key,value)-> {msg.addHeader(key.toString(),value.toString()); }); } response = request.execute(msg); if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { entity = response.getEntity(); result = EntityUtils.toString(entity,"UTF-8"); } return result; } /** String body is json type*/ static String doPost(String url,String body, Map<Object,Object> header)throws KeyStoreException, IOException, KeyManagementException, NoSuchAlgorithmException{ String result =null; CloseableHttpClient request = sslIgnoreClient(); HttpPost msg = new HttpPost(url); if (header !=null){ header.forEach((key,value)-> {msg.addHeader(key.toString(),value.toString()); }); } msg.setEntity(new StringEntity(body)); response = request.execute(msg); if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { entity = response.getEntity(); result = EntityUtils.toString(entity,"UTF-8"); } return result; } /** do post form-data */ static String doPostParam(String url, Map<Object,Object> header,Map<Object,Object> params)throws KeyStoreException, IOException, KeyManagementException, NoSuchAlgorithmException{ String result = null; CloseableHttpClient request =sslIgnoreClient(); HttpPost msg = new HttpPost(); if (header !=null){ header.forEach((key,value)-> {msg.addHeader(key.toString(),value.toString()); }); } List<BasicNameValuePair> paramList=new ArrayList<>(); params.forEach((key,value)->{paramList.add(new BasicNameValuePair(key.toString(),value.toString()));}); HttpEntity formEntity = new UrlEncodedFormEntity(paramList,"utf-8"); msg.setEntity(formEntity); response = request.execute(msg); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){ entity = response.getEntity(); result = EntityUtils.toString(entity,"UTF-8"); } return result; } /** do upload and download operation*/ static void uploadFile(){ } }
原文地址:https://www.cnblogs.com/SunshineKimi/p/12222791.html
时间: 2024-10-18 11:55:01