httpclient4.3发送post和get实例代码

httpclient4.3发送post和get请求的工具代码。

	public static final String ISO88591 = "ISO-8859-1";
	public static final String GBK = "GBK";
	public static final String UTF8 = "UTF-8";
    /**
     * @throws IOException 
     * 
     * @Title: httpPost 
     * @Description: httpPost请求工具类
     * @param url
     * @param params
     * @param charset
     * @param socketTimeOut
     * @param connectTimeOut
     * @param connReqTimeOut
     * @return    设定文件
     * @return String    返回类型
     * @date 2015年7月10日 上午11:55:39 
     * @throws
     */
    public static String httpPost(String url, StringEntity params, Map headerMap, String charset, SSLConnectionSocketFactory sslsf, int socketTimeOut, int connectTimeOut, int connReqTimeOut ) throws IOException{
    	if (Tools.checkNull(charset)) {
    		charset = UTF8;
    	}
    	HttpPost httppost = new HttpPost(url);
    	RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(socketTimeOut).setConnectTimeout(connectTimeOut).setConnectionRequestTimeout(connReqTimeOut)
    			.build();//设置请求和传输超时时间
    	httppost.setConfig(requestConfig);
    	if (!Tools.checkNull(headerMap) && !headerMap.isEmpty()) {
			for (Entry header : headerMap.entrySet()) {
				if (!Tools.checkNull(header.getKey()) && !Tools.checkNull(header.getValue())) {
					httppost.setHeader(header.getKey(), header.getValue());
				}
			}
		}
    	String result = null;
    	HttpClientBuilder httpbuilder = HttpClients.custom();
    	if (!Tools.checkNull(sslsf)) {//如果证书不为空则加载证书
			httpbuilder.setSSLSocketFactory(sslsf);
		}
    	CloseableHttpClient httpclient = httpbuilder.build();
    	CloseableHttpResponse response = null;
    	try{
    		
    		httppost.setEntity(params);
    		response = httpclient.execute(httppost);
    		if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
    			HttpEntity entity = response.getEntity();
    			if (entity != null) {
    				return EntityUtils.toString(entity, charset);
    			}
    		} else {
    			throw new BaseException(ExceptionEnu.HTTP_ERROR);
    		}
    	} finally{
    		if (response != null) {
    			try {
    				response.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    		try {
    			httpclient.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    	return result;
    }
    
    /**
     * @throws IOException 
     * 
     * @Title: httpPost 
     * @Description: httpPost请求工具类
     * @param url
     * @param params
     * @param timeOut
     * @param charset
     * @return    设定文件
     * @return String    返回类型
     * @date 2015年7月2日 下午4:51:55 
     * @throws
     */
    public static String httpPost(String url, Map params, String charset, SSLConnectionSocketFactory sslsf, int timeOut) throws IOException{
    	//定义传递参数
    	List formparams = new ArrayList();
    	if (params != null) {
    		for (Entry entry : params.entrySet()) {
				formparams.add(new BasicNameValuePair(entry.getKey(), entry.getValue()==null?"":entry.getValue().toString()));
    		}
		}
    	UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(formparams, charset);//对参数进行编码 ;
    	return httpPost(url, uefEntity, null, charset, sslsf, timeOut, timeOut, timeOut);
    }
    
    /**
     * @throws IOException 
     * 
     * @Title: httpPost 
     * @Description: httpPost请求工具类
     * @param url
     * @param params
     * @param timeOut
     * @param charset
     * @return    设定文件
     * @return String    返回类型
     * @date 2015年7月2日 下午4:51:55 
     * @throws
     */
    public static String httpPost(String url, Map params, Map header, String charset, SSLConnectionSocketFactory sslsf, int timeOut) throws IOException{
    	//定义传递参数
    	List formparams = new ArrayList();
    	if (params != null) {
    		for (Entry entry : params.entrySet()) {
    			formparams.add(new BasicNameValuePair(entry.getKey(), entry.getValue()==null?"":entry.getValue().toString()));
    		}
    	}
    	if (Tools.checkNull(charset)) {
    		charset = UTF8;
    	}
    	UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(formparams, charset);//对参数进行编码 ;
    	return httpPost(url, uefEntity, header, charset, sslsf, timeOut, timeOut, timeOut);
    }
    
    /**
     * 发送json请求
     * @param url
     * @param params
     * @param charset
     * @param timeOut
     * @return
     * @throws IOException
     */
    public static String httpJsonPost(String url, String jsonParams, String charset, SSLConnectionSocketFactory sslsf, int timeOut) throws IOException{
    	charset = Tools.checkNull(charset) ? "utf-8" : charset;
    	StringEntity params = new StringEntity(jsonParams);
        params.setContentEncoding(charset);
        params.setContentType("charset=utf-8");//发送json数据需要设置contentType
    	return httpPost(url, params, null, charset, sslsf, timeOut, timeOut, timeOut);
    }
    
    /**
     * @throws IOException 
     * 
     * @Title: httpGet 
     * @Description: httpPost请求工具类
     * @param url
     * @param params
     * @param charset
     * @param socketTimeOut
     * @param connectTimeOut
     * @param connReqTimeOut
     * @return    设定文件
     * @return String    返回类型
     * @date 2015年7月10日 上午11:55:39 
     * @throws
     */
    public static String httpGet(String url, Map params, String charset, int socketTimeOut, int connectTimeOut, int connReqTimeOut ) throws IOException{
    	if (Tools.checkNull(charset)) {
    		charset = UTF8;
    	}
    	String result = null;
    	CloseableHttpClient httpclient = HttpClients.createDefault();
    	CloseableHttpResponse response = null;
    	try{
    		//定义传递参数
    		List formparams = new ArrayList();
    		for (Entry entry : params.entrySet()) {
				formparams.add(new BasicNameValuePair(entry.getKey(), entry.getValue()==null?"":entry.getValue().toString()));
    		}
    		url += "?" + EntityUtils.toString(new UrlEncodedFormEntity(formparams, charset), charset);    		
    		log.info("url : [{}]", url);
    		HttpGet httpget = new HttpGet(url);
    		RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(socketTimeOut).setConnectTimeout(connectTimeOut).setConnectionRequestTimeout(connReqTimeOut)
    				.build();//设置请求和传输超时时间
    		httpget.setConfig(requestConfig);
    		response = httpclient.execute(httpget); 
    		if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
    			HttpEntity entity = response.getEntity();
    			if (entity != null) {
    				return EntityUtils.toString(entity, charset);
    			}
    		} else {
    			throw new BaseException(ExceptionEnu.HTTP_ERROR);
    		}
    	} finally{
    		if (response != null) {
    			try {
    				response.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    		try {
    			httpclient.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    	return result;
    }
    
    /**
     * @throws IOException 
     * 
     * @Title: httpGet 
     * @Description: httpGet请求工具类
     * @param url
     * @param params
     * @param charset
     * @param timeOut
     * @return    设定文件
     * @return String    返回类型
     * @date 2015年7月15日 上午10:34:41 
     * @throws
     */
    public static String httpGet(String url, Map params, String charset, int timeOut) throws IOException{
    	return httpGet(url, params, charset, timeOut, timeOut, timeOut);
    }
    
    /**
     * @throws IOException 
     * 
     * @Title: httpGetBytes 
     * @param url
     * @param params
     * @param charset
     * @param socketTimeOut
     * @param connectTimeOut
     * @param connReqTimeOut
     * @return byte[]    返回类型
     * @date 2015年7月10日 上午11:55:39 
     * @throws
     */
    public static byte[] httpGetBytes(String url, Map params, String charset, int socketTimeOut, int connectTimeOut, int connReqTimeOut ) throws IOException{
    	if (Tools.checkNull(charset)) {
    		charset = UTF8;
    	}
    	byte[] result = null;
    	CloseableHttpClient httpclient = HttpClients.createDefault();
    	CloseableHttpResponse response = null;
    	try{
    		if (params != null && !params.isEmpty()) {
    			//定义传递参数
    			List formparams = new ArrayList();
    			for (Entry entry : params.entrySet()) {
    				formparams.add(new BasicNameValuePair(entry.getKey(), entry.getValue()==null?"":entry.getValue().toString()));
    			}
    			url += "?" + EntityUtils.toString(new UrlEncodedFormEntity(formparams, charset), charset);    		
			}
    		log.info("url : [{}]", url);
    		HttpGet httpget = new HttpGet(url);
    		RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(socketTimeOut).setConnectTimeout(connectTimeOut).setConnectionRequestTimeout(connReqTimeOut)
    				.build();//设置请求和传输超时时间
    		httpget.setConfig(requestConfig);
    		response = httpclient.execute(httpget); 
    		if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
    			HttpEntity entity = response.getEntity();
    			if (entity != null) {
    				return EntityUtils.toByteArray(entity);
    			}
    		} else {
    			throw new BaseException(ExceptionEnu.HTTP_ERROR);
    		}
    	} finally{
    		if (response != null) {
    			try {
    				response.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    		try {
    			httpclient.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    	return result;
    }
    /**
     * @throws IOException 
     * 
     * @Title: httpGetBytes 
     * @param url
     * @param params
     * @param charset
     * @param timeOut
     * @return byte[]    返回类型
     * @date 2015年7月10日 上午11:55:39 
     * @throws
     */
    public static byte[] httpGetBytes(String url, Map params, String charset, int timeOut) throws IOException{
    	return httpGetBytes(url, params, charset, timeOut, timeOut, timeOut);
    }

httpclient4.3 jar包

你可能感兴趣的:(JAVA)