你的位置:首页 > 软件开发 > Java > Java常用工具类

Java常用工具类

发布时间:2017-11-10 17:00:14
HttpUtil主要实现的功能有:Get请求 HttpUtil.getInstance().get(String url) ;HttpUtil.getInstance().get(String url, Map<String, String> params) ; ...

 

  • HttpUtil


主要实现的功能有:

    • Get请求

 

HttpUtil.getInstance().get(String url) ;HttpUtil.getInstance().get(String url, Map<String, String> params) ;

 

    • Post请求

 

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; }}

 

 

  • JsonUtil

  根据 Gson 库进行封装,具体用法如下:

    • json字符串转对象
JsonUtil.fromJson(String json, Class<T> classOfT);
    • 对象转json字符串
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 (#换成@)。