1、引入依赖
<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.2</version></dependency>
2、HttpUtil
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.io.IOException;public class HttpUtil {private static final Logger logger = LoggerFactory.getLogger(HttpUtil.class);public static CloseableHttpClient getHttpClient(String username,String password){HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();// 设置BasicAuthCredentialsProvider provider = new BasicCredentialsProvider();// Create the authentication scopeAuthScope scope = new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM);// Create credential pair,在此处填写用户名和密码UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(username,password);// Inject the credentialsprovider.setCredentials(scope, credentials);// Set the default credentials providerhttpClientBuilder.setDefaultCredentialsProvider(provider);// HttpClientCloseableHttpClient httpClient = httpClientBuilder.build();return httpClient;}public static CloseableHttpClient getHttpClient(){CloseableHttpClient httpClient = HttpClients.createDefault();return httpClient;}public static String sendPost(CloseableHttpClient httpclient,String url,String jsonParam){HttpPost httpPost = new HttpPost(url);httpPost.setHeader("Content-Type", "application/json;charset=UTF-8");StringEntity entity = new StringEntity(jsonParam, ContentType.APPLICATION_JSON);httpPost.setEntity(entity);CloseableHttpResponse response = null;try {response = httpclient.execute(httpPost);} catch (IOException e) {logger.error("post请求发送失败",e);return null;}int statusCode = response.getStatusLine().getStatusCode();logger.info("post请求发送成功,响应码:"+statusCode);try {String result = EntityUtils.toString(response.getEntity(), "UTF-8");return result;} catch (IOException e) {logger.error("获取响应体失败:",e);return null;} finally {try {response.close();httpclient.close();} catch (IOException e) {logger.error("资源关闭失败",e);}}}public static String sendGet(CloseableHttpClient httpclient,String url){HttpGet httpGet = new HttpGet(url);CloseableHttpResponse response = null;try {response = httpclient.execute(httpGet);} catch (IOException e) {logger.error("get请求发送失败",e);return null;}int statusCode = response.getStatusLine().getStatusCode();logger.info("post请求发送成功,响应码:"+statusCode);try {String result = EntityUtils.toString(response.getEntity(), "UTF-8");return result;} catch (IOException e) {logger.error("获取响应体失败:",e);return null;} finally {try {response.close();httpclient.close();} catch (IOException e) {logger.error("资源关闭失败",e);}}}}