HttpUtil主要实现的功能有:Get请求 HttpUtil.getInstance().get(String url) ;HttpUtil.getInstance().get(String url, Map<String, String> params) ; ...
主要实现的功能有:
HttpUtil.getInstance().get(String url) ;HttpUtil.getInstance().get(String url, Map<String, String> params) ;
HttpUtil.getInstance().post(String url, Map<String, String> requestParams) ;
HttpUtil.getInstance().downloadFile(String url, String destFileName);
源码如下:
import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.ClientProtocolException;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.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;import java.io.*;import java.net.URI;import java.net.URLEncoder;import java.util.*;public class HttpUtil{ private static HttpUtil ourInstance = new HttpUtil(); public static HttpUtil getInstance() { return ourInstance; } private HttpUtil() { } /** * POST请求 * * @param url * @param requestParams * @return * @throws Exception */ public String post(String url, Map<String, String> requestParams) throws Exception { String result = null; CloseableHttpClient httpClient = HttpClients.createDefault(); /**HttpPost*/ HttpPost httpPost = new HttpPost(url); List params = new ArrayList(); Iterator<Map.Entry<String, String>> it = requestParams.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, String> en = it.next(); String key = en.getKey(); String value = en.getValue(); if (value != null) { params.add(new BasicNameValuePair(key, value)); } } httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); /**HttpResponse*/ CloseableHttpResponse httpResponse = httpClient.execute(httpPost); try { HttpEntity httpEntity = httpResponse.getEntity(); result = EntityUtils.toString(httpEntity, "utf-8"); EntityUtils.consume(httpEntity); } finally { try { if (httpResponse != null) { httpResponse.close(); } } catch (IOException e) { e.printStackTrace(); } } return result; } /** * GET 请求 * * @param url * @param params * @return */ public String get(String url, Map<String, String> params) { return get(getUrlWithQueryString(url, params)); } /** * Get 请求 * * @param url * @return */ public String get(String url) { CloseableHttpClient httpCient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet(); httpGet.setURI(URI.create(url)); String result = null; //第三步:执行请求,获取服务器发还的相应对象 CloseableHttpResponse httpResponse = null; try { httpResponse = httpCient.execute(httpGet); if (httpResponse.getStatusLine().getStatusCode() == 200) { HttpEntity entity = httpResponse.getEntity(); String response = EntityUtils.toString(entity, "utf-8");//将entity当中的数据转换为字符串 result = response.toString(); } } catch (IOException e) { e.printStackTrace(); } finally { if (httpResponse != null) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } /** * 根据api地址和参数生成请求URL * * @param url * @param params * @return */ private String getUrlWithQueryString(String url, Map<String, String> params) { if (params == null) { return url; } StringBuilder builder = new StringBuilder(url); if (url.contains("?")) { builder.append("&"); } else { builder.append("?"); } int i = 0; for (String key : params.keySet()) { String value = params.get(key); if (value == null) { //过滤空的key continue; } if (i != 0) { builder.append('&'); } builder.append(key); builder.append('='); builder.append(encode(value)); i++; } return builder.toString(); } /** * 下载文件 * * @param url * @param destFileName * @throws ClientProtocolException * @throws IOException */ public boolean downloadFile(String url, String destFileName) { CloseableHttpClient httpclient = HttpClients.createDefault(); HttpGet httpget = new HttpGet(url); HttpResponse response = null; InputStream in = null; try { response = httpclient.execute(httpget); HttpEntity entity = response.getEntity(); in = entity.getContent(); File file = new File(destFileName); FileOutputStream fout = new FileOutputStream(file); int l = -1; byte[] tmp = new byte[1024]; while ((l = in.read(tmp)) != -1) { fout.write(tmp, 0, l); } fout.flush(); fout.close(); return true; } catch (IOException e) { e.printStackTrace(); } finally { // 关闭低层流。 if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } try { httpclient.close(); } catch (IOException e) { e.printStackTrace(); } } return false; } /** * 进行URL编码 * * @param input * @return */ private String encode(String input) { if (input == null) { return ""; } try { return URLEncoder.encode(input, "utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return input; }}
根据 Gson 库进行封装,具体用法如下:
JsonUtil.fromJson(String json, Class<T> classOfT);
JsonUtil.toJson(Object src);
JsonUtil 源码如下:
import com.google.gson.Gson;public class JsonUtil { static Gson gson = new Gson() ; /** * json字符串转对象 * @param json * @param classOfT * @param <T> * @return */ public static <T>T fromJson(String json, Class<T> classOfT){ return gson.fromJson(json,classOfT); } /** * 对象转json字符串 * @param src * @return */ public static String toJson(Object src){ return gson.toJson(src); } }
原标题:Java常用工具类
关键词:JAVA
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。