• HttpClient工具类


    HttpClient工具类

    1.maven依赖

    <!-- httpclient -->
    		<dependency>
    			<groupId>org.apache.httpcomponents</groupId>
    			<artifactId>httpclient</artifactId>
    			<version>4.3.5</version>
    		</dependency>
    		<dependency>
    			<groupId>org.apache.httpcomponents</groupId>
    			<artifactId>httpmime</artifactId>
    			<version>4.3.1</version>
    		</dependency>
    

    2.代码

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    
    import org.apache.http.NameValuePair;
    import org.apache.http.client.config.RequestConfig;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    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.client.utils.URIBuilder;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import com.alibaba.druid.util.StringUtils;
    
    @Service
    public class HttpClientService {
    
    	private static final Logger LOGGER = LoggerFactory.getLogger(HttpClientService.class);
    
    	@Autowired(required=false)
    	private CloseableHttpClient httpClient;
    
    	@Autowired(required=false)
    	private RequestConfig requestConfig;
    	public String doGet(String url,Map<String,String> params,String charset) {
    		LOGGER.info("doGet");
    		String result = null;
    		//1.判断字符集编码是否为空 如果为空则给定默认值utf-8
    		if(StringUtils.isEmpty(charset)) {
    			charset="UTF-8";
    		}
    		//2.判断用户是否需要传递参数
    		if(params!=null&&params.size()!=0) {
    			try {
    				URIBuilder uriBuilder =new URIBuilder(url);
    				for (Map.Entry<String, String> entry : params.entrySet()) {
    					uriBuilder.addParameter(entry.getKey(), entry.getValue());
    				}
    				url=uriBuilder.build().toString();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    
    		//3.定义参数提交对象
    		HttpGet get = new HttpGet(url);
    		//4.为请求设定超时时间
    		get.setConfig(requestConfig);
    		//5.通过httpClient发送请求
    		try {
    
    			CloseableHttpResponse response = httpClient.execute(get);
    			//表示程序调用成功
    			int statusCode = response.getStatusLine().getStatusCode();
    			if(statusCode==200) {
    				result=EntityUtils.toString(response.getEntity(), charset);
    			}else {
    				System.out.println("调用异常:状态信息:"+statusCode);
    				throw new RuntimeException();
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return result;
    
    	}
    
    
    	public String doGet(String url){
    
    		return doGet(url, null, null);
    	}
    
    	public String doGet(String url,Map<String,String> params){
    
    		return doGet(url, params, null);
    	}
    
    	public String doGet(String url,String charset){
    
    		return doGet(url, null, charset);
    	}
    	/**
    	 * post请求 的
    	 * @param url
    	 * @param params
    	 * @param charset
    	 * @return
    	 */
    	public String doPost(String url,Map<String,String> params,String charset) {
    		String result=null;
    		HttpPost post = new HttpPost(url);
    		post.setConfig(requestConfig);
    		if(StringUtils.isEmpty(charset)) {
    			charset="UTF-8";
    		}
    		if(params!=null&&params.size()!=0) {
    			//构建表单提交的实例化对象
    			List<NameValuePair> parameters = new ArrayList<>();
    			for (Map.Entry<String,String> entry : params.entrySet()) {
    				parameters.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));
    			}
    			
    			try {
    				UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(parameters, charset);
    				post.setEntity(formEntity);
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    
    		try {
    			CloseableHttpResponse response = httpClient.execute(post);
    			int statusCode = response.getStatusLine().getStatusCode();
    			if(statusCode==200) {
    				result =EntityUtils.toString(response.getEntity(),charset );
    			}else {
    				System.out.println("调用异常:状态信息:"+statusCode);
    				throw new RuntimeException();
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    
    		}
    		return result;
    	}
    	
    	public String doPost(String url,Map<String,String> params) {
    		return doPost(url,params,null);
    	}
    	
    }
    
    
  • 相关阅读:
    解决js跨域
    判断js对象类型
    闭包的理解
    this关键字
    js的数据类型
    多线程
    JavaEE之动态页面技术(JSP/EL/JSTL)
    JavaEE之HttpServletResponse
    JavaEE之HttpServletRequest
    JavaEE之会话技术Cookie&Session
  • 原文地址:https://www.cnblogs.com/szls-666/p/12494208.html
Copyright © 2020-2023  润新知