HttpUtil工具类

Posted 向天再借500年V

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HttpUtil工具类相关的知识,希望对你有一定的参考价值。

HttpUtil工具类

mavne配置

<dependency>
	<groupId>org.apache.httpcomponents</groupId>
	<artifactId>httpcore</artifactId>
	<version>4.4.10</version>
</dependency>
<dependency>
	<groupId>org.apache.httpcomponents</groupId>
	<artifactId>httpclient</artifactId>
	<version>4.5.6</version>
</dependency>

HttpUtil.java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;

import org.apache.http.client.config.RequestConfig;
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.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class HttpUtil 

	private static CloseableHttpClient httpClient;

	static 
		PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
		cm.setMaxTotal(100);
		cm.setDefaultMaxPerRoute(20);
		cm.setDefaultMaxPerRoute(50);
		httpClient = HttpClients.custom().setConnectionManager(cm).build();
	

	public static String get(String url) 
		log.info("HttpClient.get:", url);
		CloseableHttpResponse response = null;
		BufferedReader in = null;
		String result = "";
		try 
			HttpGet httpGet = new HttpGet(url);
			RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30000)
					.setConnectionRequestTimeout(30000).setSocketTimeout(30000).build();
			httpGet.setConfig(requestConfig);
			httpGet.setConfig(requestConfig);
			httpGet.addHeader("Content-type", "application/json; charset=utf-8");
			httpGet.setHeader("Accept", "application/json");
			response = httpClient.execute(httpGet);
			in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
			StringBuffer sb = new StringBuffer("");
			String line = "";
			String NL = System.getProperty("line.separator");
			while ((line = in.readLine()) != null) 
				sb.append(line + NL);
			
			in.close();
			result = sb.toString();
		 catch (IOException e) 
			e.printStackTrace();
		 finally 
			try 
				if (null != response) 
					response.close();
				
			 catch (IOException e) 
				e.printStackTrace();
			
		
		return result;
	

	public static String post(String url, String jsonString) 
		log.info("HttpClient.post:,", url, jsonString);
		CloseableHttpResponse response = null;
		BufferedReader in = null;
		String result = "";
		try 
			HttpPost httpPost = new HttpPost(url);
			RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30000)
					.setConnectionRequestTimeout(30000).setSocketTimeout(30000).build();
			httpPost.setConfig(requestConfig);
			httpPost.setConfig(requestConfig);
			httpPost.addHeader("Content-type", "application/json; charset=utf-8");
			httpPost.setHeader("Accept", "application/json");
			httpPost.setEntity(new StringEntity(jsonString, Charset.forName("UTF-8")));
			response = httpClient.execute(httpPost);
			in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
			StringBuffer sb = new StringBuffer("");
			String line = "";
			String NL = System.getProperty("line.separator");
			while ((line = in.readLine()) != null) 
				sb.append(line + NL);
			
			in.close();
			result = sb.toString();
		 catch (IOException e) 
			e.printStackTrace();
		 finally 
			try 
				if (null != response) 
					response.close();
				
			 catch (IOException e) 
				e.printStackTrace();
			
		
		return result;
	


以上是关于HttpUtil工具类的主要内容,如果未能解决你的问题,请参考以下文章

HutoolHutool工具类之Http工具——HttpUtil

Android-HttpUtil工具类

Android-HttpUtil工具类

Android-HttpUtil工具类

Apache HttpComponents 工具类 [ HttpUtil ]

React Native 基于Fetch封装HTTPUtil工具类